Есть запрос вида
SELECT n.id, n.name, SUBSTRING(n.`text`, 1, 256 ) AS `text`, cat.id as cat_id, cat.name as cat_name
FROM news n
LEFT JOIN category as cat on (cat.id = n.category_id)
WHERE category_id = 1
Хотелось бы его не в чистом виде, а через ActiveRecords.
У меня получилось так
$query = News::find()
->select([
'{{%news}}.`id`',
'{{%news}}.`name`',
'SUBSTRING({{%news}}.`text`, 1, 256 ) AS `text`',
'{{%news}}.`date`',
'{{%category}}.`id` AS cat_id',
'{{%category}}.`name` AS `cat_name`'
])
->leftJoin('{{%category}}', '{{%category}}.id = {{%news}}.category_id')
->where($where['where'], $where['arr']);
И еще момент - как этот запрос разместить в модели а не в контроллере