Laravel — это популярный PHP-фреймворк, который обеспечивает элегантный и интуитивно понятный способ взаимодействия с базами данных через слой ORM (объектно-реляционное сопоставление), называемый Eloquent. В этой статье мы углубимся в один из мощных методов Eloquent: Model::query()
. Мы рассмотрим различные методы, доступные в query()
, и предоставим примеры кода, демонстрирующие их использование.
- Базовые запросы.
Методquery()
позволяет создавать и выполнять запросы к базе данных с помощью гибкого построителя запросов Laravel. Вот пример:
$users = User::query()->where('active', true)->get();
- Объединение ограничений запроса.
Вы можете объединить несколько ограничений запроса, используя такие методы, какwhere
,orWhere
,whereIn
,whereNull
и многое другое. Вот пример:
$users = User::query()
->where('age', '>', 18)
->orWhere('is_admin', true)
->get();
- Выбор определенных столбцов:
Чтобы получить определенные столбцы из базы данных, вы можете использовать методselect
. Вот пример:
$users = User::query()
->select('name', 'email')
->get();
- Упорядочение результатов.
Результаты запроса можно отсортировать с помощью методаorderBy
. Вот пример:
$users = User::query()
->orderBy('name', 'desc')
->get();
- Ограничение и смещение результатов.
Чтобы ограничить количество результатов и указать смещение, вы можете использовать методыlimit
иoffset
. Вот пример:
$users = User::query()
->offset(10)
->limit(5)
->get();
- Жаркие отношения загрузки.
Вы можете активировать отношения загрузки для оптимизации производительности, используя методwith
. Вот пример:
$users = User::query()
->with('posts')
->get();
- Агрегаты и скалярные значения.
Вы можете выполнять агрегатные функции, такие какcount
,sum
,avg
и т. д. и получить скалярные значения с помощью методаvalue
. Вот пример:
$totalUsers = User::query()->count();
$averageAge = User::query()->avg('age');
Метод Model::query()
в Laravel предоставляет мощный и гибкий способ создания и выполнения запросов к базе данных с помощью свободного построителя запросов. В этой статье мы рассмотрели несколько методов, доступных в query()
, включая базовые запросы, связывание ограничений запроса, выбор определенных столбцов, упорядочивание результатов, ограничение и смещение результатов, отношения быстрой загрузки, а также выполнение агрегатов и получение скалярных значений.. Используя эти методы, вы можете эффективно взаимодействовать со своей базой данных в приложениях Laravel.
Не забудьте поэкспериментировать с этими методами и изучить документацию Laravel для получения более подробной информации и расширенных вариантов использования.