Как правильно сделать запрос в Yii2?

В Yii2 запросы к базе данных выполняются с использованием Query Builder или ActiveRecord. Рассмотрим оба подхода.

Query Builder

Query Builder предоставляет удобный и гибкий способ создания запросов к базе данных без написания SQL-кода вручную.

Простейший запрос к базе данных можно выполнить следующим образом:

use yiidbQuery;

$query = new Query;
$rows = $query->select(['id', 'name'])
    ->from('user')
    ->where(['status' => 1])
    ->all();

Этот код создает экземпляр класса Query и выполняет следующие действия:
- Выбирает поля id и name из таблицы user.
- Ограничивает выборку только теми записями, у которых значение поля status равно 1.
- Полный результат запроса сохраняется в переменную $rows.

В результате выполнения этого кода, в переменной $rows будет лежать массив с результатами запроса.

ActiveRecord

ActiveRecord - это шаблон проектирования, который предоставляет более удобный способ взаимодействия с базой данных, чем Query Builder. В Yii2 для каждой таблицы в базе данных создается соответствующий класс ActiveRecord, который обеспечивает доступ к данным и методы для работы с ними.

Пример выполнения запроса с использованием ActiveRecord:

use appmodelsUser;

$users = User::find()
    ->select(['id', 'name'])
    ->where(['status' => 1])
    ->all();

В этом примере мы использовали модель User, которая соответствует таблице user в базе данных. Метод find() возвращает экземпляр класса ActiveQuery, с помощью которого можно создавать запросы. Затем мы указываем, какие поля нам нужно выбрать (метод select()) и добавляем условие (метод where()).

Также, с помощью методов ActiveRecord есть возможность создания более сложных запросов, использовать группировку, сортировку, объединение таблиц и т. д.

В заключение, запросы к базе данных в Yii2 можно выполнять с использованием Query Builder или ActiveRecord, в зависимости от ваших потребностей и предпочтений. Оба подхода обладают гибкостью и мощными возможностями для работы с данными.