На yii2 тоже можно с базой работать через DAO, это небольшая надстройка над PDO. Пиши запросі как хочешь, пример:
$type = 'bear';
$comm = $db->createCommand('SELECT * FROM {{%atypes}} WHERE typea=:type');
$comm->bindParam(':type', $type);
$rows = $comm->queryAll();
var_dump($rows);
QueryBuilder? Ну не знаю чем он может пугать. Более удобный синтаксис для забинденных параметров, экранирования имен столбцов.
Странно. Самый смак как раз от этого AR. В laravel тоже есть ORM, чем то они во многом похожи.
Смысл - работать с объектами базы напрямую.
Код соответственно чище и четче становится, логичней.
Без всех этих РУТИННЫХ запросов на выборку и crud. Плюс на объекты БД можно понавешивать обработчики событий, будет в фоне много всего нужного производиться.
Те кто yii используют, во многом вообще уже SQL и не пишут, а используют AR объекты. Не для сложных выборок в основном, а для манипуляций с инфой в БД.
Код более логичный получается ( без всякой этой банальщины в виде необходимости выполнения SQL запросов для каждого чиха, переборки результата запроса.), пример:
if ($mitem = Menuitem::findOne([
'mid' => $newTreeId,
'ltext' => $name,
'lpath' => $this->owner->pageid,
]) {
$mitem->moveToNode($newParentId);
}
Код небольшой, но он будет делать много всего полезного:
1) экранировать параметры не надо самому
2) там будет не 2 запроса а больше, т.к. на объекте весит поведение materialized path, которое настроит "детей" данной переносимой ноды, ихние level, weight и т.д.
_____________
There never was a struggle in the soul of a good man that was not hard