Как правильно работать с БД в Yii2 без ActiveRecords? Приветствую всех.
Собственно вопрос прозвучал в заголовке. ActiveRecords не использую из-за низкой производительности (по данным из блогов рунета) и другой логики использования моделей. На мой взгляд, в моделях должна быть сосредоточена основная логика приложения, однако модель не должна жестко привязываться к таблице в БД. Так как с фреймворком познакомился лишь недавно, многого еще не знаю, однако чувствую некую перегруженность возможностей что-ли.
Сейчас использую конструкцию (new Query())для Select`ов, однако конструкцияYii::$app->db->createCommand() для выполнения Update не отрабатывает корректно. Возможно есть класс-helper для работы с БД в Yii2 "привычным" способом. Конечно, мне даже немного стыдно что я не знаю таких простых вещей, однако все когда-то встречались с этим впервые.

21 Авг 2019 в 06:24
344 +2
0
Ответы
1

Для работы с БД в Yii2 без ActiveRecords, можно использовать классы QueryBuilder и Command, которые предоставляют более низкоуровневый доступ к базе данных.

Для выполнения запросов типа SELECT можно использовать QueryBuilder, который предоставляет удобный интерфейс для создания SQL-запросов. Например:

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

Для выполнения запросов типа UPDATE, INSERT, DELETE можно использовать класс Command:

Yii::$app->db->createCommand()
->update('user', ['status' => 2], 'id = 1')
->execute();

Также стоит упомянуть о том, что в Yii2 можно использовать DAO (Data Access Objects) для работы с базой данных. DAO предоставляет простой интерфейс для выполнения запросов и обработки результатов.

Надеюсь, это поможет вам правильно работать с БД в Yii2 без использования ActiveRecords. В любом случае, выбор метода работы с базой данных зависит от ваших предпочтений и требований проекта.

20 Апр 2024 в 13:19
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир