Метод all
Метод all применяется к модели Eloquent
и возвращает коллекцию всех записей из соответствующей
таблицы базы данных. Метод не принимает никаких параметров
и всегда возвращает коллекцию, даже если в таблице нет
ни одной записи. Это один из самых простых способов
получить все данные из таблицы.
Синтаксис
<?php
Model::all();
?>
Метод all всегда возвращает экземпляр
IlluminateDatabaseEloquentCollection,
который предоставляет множество удобных методов
для работы с данными.
Пример
Давайте получим все статьи из таблицы 'articles':
<?php
namespace AppHttpControllers;
use AppModelsArticle;
class ArticleController extends Controller
{
public function index()
{
$articles = Article::all();
foreach ($articles as $article) {
echo $article->title;
}
}
}
?>
Результат выполнения кода:
"article 1"
"article 2"
"article 3"
Пример
Метод all можно использовать с цепочкой
других методов для преобразования данных.
Давайте получим все статьи и отсортируем их
по убыванию id:
<?php
namespace AppHttpControllers;
use AppModelsArticle;
class ArticleController extends Controller
{
public function index()
{
$articles = Article::all()->sortByDesc('id');
foreach ($articles as $article) {
echo $article->id . ': ' . $article->title;
}
}
}
?>
Результат выполнения кода:
"3: article 3"
"2: article 2"
"1: article 1"
Пример
Метод all возвращает коллекцию, поэтому
мы можем использовать методы коллекций для фильтрации
данных. Давайте получим только те статьи, у которых
id больше 2:
<?php
namespace AppHttpControllers;
use AppModelsArticle;
class ArticleController extends Controller
{
public function index()
{
$articles = Article::all()->filter(function ($article) {
return $article->id > 2;
});
foreach ($articles as $article) {
echo $article->title;
}
}
}
?>
Результат выполнения кода:
"article 3"
Пример
Если в таблице нет записей, метод all
возвращает пустую коллекцию. Давайте проверим
это на примере пустой таблицы:
<?php
namespace AppHttpControllers;
use AppModelsArticle;
class ArticleController extends Controller
{
public function index()
{
$articles = Article::all();
if ($articles->isEmpty()) {
echo 'No articles found';
} else {
foreach ($articles as $article) {
echo $article->title;
}
}
}
}
?>
Результат выполнения кода:
"No articles found"