Метод query
Метод query применяется к модели Eloquent и возвращает новый экземпляр построителя запросов. Этот метод полезен, когда нужно начать построение запроса с чистого листа или когда требуется использовать методы Query Builder, которые недоступны непосредственно через модель. Метод не принимает параметров и всегда возвращает свежий экземпляр Builder.
Синтаксис
<?php
Model::query();
?>
Пример
Давайте получим все статьи, используя метод query для построения запроса:
<?php
use AppModelsArticle;
$articles = Article::query()->get();
foreach ($articles as $article) {
echo $article->title;
}
?>
Результат выполнения кода:
["article 1", "article 2", "article 3", "article 4", "article 5"]
Пример
Давайте построим сложный запрос с несколькими условиями, используя метод query:
<?php
use AppModelsArticle;
$articles = Article::query()
->where('status', 'published')
->where('views', '>', 100)
->orderBy('created_at', 'desc')
->limit(10)
->get();
foreach ($articles as $article) {
echo $article->title . ' - ' . $article->views;
}
?>
Результат выполнения кода:
["article 3 - 150", "article 1 - 120"]
Пример
Метод query особенно полезен при использовании агрегатных функций и сложных условий:
<?php
use AppModelsArticle;
$maxViews = Article::query()
->where('status', 'published')
->max('views');
echo 'Maximum views: ' . $maxViews;
?>
Результат выполнения кода:
"Maximum views: 150"