$subQuery = (new \yii\db\Query())
->select('COUNT(*)')
->where('s1.`recept_id` = `np_recepty_ingredients`.`recept_id`')
->from('np_recepty_ingredients s1');
$query = (new \yii\db\Query())
->select(['np_recepty.*', 'cnt' => $subQuery])
->from('np_recepty_ingredients')
->join('LEFT JOIN','`np_recepty` ON `np_recepty`.`id` = `np_recepty_ingredients`.`recept_id`')
->groupBy('`np_recepty`.`id`')
->having('cnt > 0')
->orderBy('cnt DESC');
Выдает запрос один в один как мне надо. Но почему то если делаю в конце ->all() результат будет массив, а мне нужен объект, подскажите что сделать?