TGViewer
PHP Fart Time PHP Fart Time @php_fart · 1.95K subscribers
Post #254 2.12K
Сегодня бороздил просторы LinkedIn и наткнулся на вопрос:

Can you spot the issue in this snippet?

$users = User::where('status', 'active')->get();

if ($users->count() > 0) {
$users = $users->where('role', 'admin');
}

return view('users.index', compact('users'));


The code runs without errors, and the output even looks fine.
But there’s a hidden conceptual problem here that could cause serious trouble in real-world projects.

Question:
Where exactly is the problem, why is this approach risky, and what would be the correct way to fix it?


Автор радуется, что код работает без ошибок и даже «выглядит нормально», но на там есть ловушка. (Кстати найдете ли вы ее?. Можете в коментах рассказать)

> ❗️ Проблема в том, что после ->get() мы уже получаем Collection и фильтруем данные в памяти (Collection::where()), а не в базе (Builder::where()).
На маленьком датасете всё выглядит красиво, а на проде с тысячами пользователей — вываливается лишняя нагрузка, лишнее потребление памяти и потеря ожидаемого поведения.


И вот что интересно.
С одной стороны, охуенный «тест на внимательность». Готов ли ты за джунами такую хуйню искать?
С другой — не демонстрация ли это проблем в Eloquent и Collection?

Фреймворк гордится тем, что «очень простой и интуитивный», но именно эта простота рождает ситуации, где:

- джун легко спутает QueryBuilder и Collection
- визуально одинаковые методы (where) на самом деле делают принципиально разное

ошибка не выдаст exception, а тихо превратится в баг производительности.

Вопрос к вам: А для вас #Laravel все еще говно?
  • 😁 19
  • 🤔 4
  • 💩 4
More from @php_fart
  1. Sep 9, 2026Попрошу перенести старт на конец сентября этого года. Лишь бы не жрать лимон 🍋
  2. Sep 9, 2026Если по моему промокоду придёт 50 фартанов, то я сожру лимон в прямом эфире перед докладом…
  3. Sep 9, 2026А у меня для вас вот такой промокод на Пыхник: PHPFART-26. Приходите смотреть, как я облаж…
  4. Sep 8, 2026Кстати, Роман и из JetBrains ушёл. Так что этот тред посвящён оплакиванию PHPStorm. Хороша…
  5. Sep 3, 2026Post #380
  6. Sep 2, 2026Роман Пронский окончательно уходит из PHPF. На его место заступает Брент (тоже JetBrains),…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →