Исключить пустой или нулевой столбец с Laravel Eloquent - PullRequest
0 голосов
/ 04 мая 2020

Как исключить пустые или пустые столбцы при получении коллекций с Laravel Eloquent?

Я пробовал это, но безуспешно:

User::where('last_name', 'foo')->get()->filter()

Ответы [ 2 ]

0 голосов
/ 05 мая 2020

В дополнение к ответу @ pr1nc3 для этой конкретной цели c существует метод ->reject(). Он отклоняет / исключает элементы, которые соответствуют условию. Для вашего случая используйте это так:

User::where('last_name', 'foo')->get()->reject(function ($value) { return empty($value); });

Все значения, которые удовлетворяют условию empty($value), то есть значения, которые являются пустыми / пустыми, будут отклонены.

0 голосов
/ 04 мая 2020

Вы можете сделать фильтр в 2 шага

$users = User::where('last_name', 'foo')->get(); //returns your collection

Затем вы можете использовать фильтр для вашей коллекции, например:

$myFilteredCollection = $users->filter(function ($value) { return !empty($value); });

Если вам все еще нужно в одной строке, то вы можете do:

Конечно, вы можете объединить его в один, get() на самом деле выводит коллекции, но я думаю, что это выглядит немного некрасиво. Держите свои действия отдельно.

  $users = User::where('last_name', 'foo')->get()->filter(function ($value) { return !empty($value); });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...