Все методы Eloquent, которые возвращают более одного результата модели, будут возвращать экземпляры класса Collection (Illuminate\Database\Eloquent\Collection), включая результаты, полученные с помощью метода get или доступные через отношения. Объект коллекции Eloquent наследует десятки методов, расширяя базовую коллекцию Laravel используя в работе текучий интерфейс с базовым массивом моделей Eloquent. Все коллекции по своей сути являются итераторами, это позволяет перебирать их так, как это мы можем делать с обычными массивами в PHP.
Часто в проектах мы используем коллекции при построении запросов eloquent, и последующего вывода данных. Вследствие чего возникает необходимость проверять – является результат пустым или нет. Именно о методах проверки на пустоту коллекции мы поговорим далее. Сразу стоит отметить, что данные примеры будут работать в Laravel, начиная с 5 версии и выше.
Проверить коллекцию на пустоту мы можем следующим образом:
$Post = new Post::where("status",1)->get(); $Post->isEmpty();
Метод проверяет коллекцию на пустоту, если коллекция пуста – вернёт true, в ином случае – false.
Данный метод противоположен методу isEmpty и проверяет, есть ли данные в коллекции.
$Post = new Post::where("status",1)->get(); if($Post->isNotEmpty()) { // code }
Возвращает – true если коллекция не пуста, в ином случае – false.
Посредством метода count мы так же можем проверить количество результатов, и выполнить проверку.
$Post = new Post::where("status",1)->get(); if ($Post->count()>0) { // code }
Результат метода count мы просто сравниваем с нулём. Если есть данные, то соответственно условие выполняется.