Да я уж несколько способов перепробовал... не могу получить то что нужно.
Пытаюсь вот таким способом получить данные:
Код: Выделить всё
$last_news_sitebar = (new \yii\db\Query())
->select(['a.id', 'a.title', 'a.created', 't.theme_alias', 'c.alias', 'i.id', 'i.filePath', 'i.itemId', 'i.isMain', 'i.modelName', 'i.urlAlias', 'i.name'])
->from(['a' => 'articles'])
->join('LEFT JOIN', ['t' => 'themes'], 't.id = a.theme_id')
->join('LEFT JOIN', ['c' => 'categories'], 'c.id = a.category_id')
->join('LEFT JOIN', ['i' => 'image'], 'i.itemId = a.id')
->where(['visible' => '1', 'a.category_id' => '1'])
->orderBy(['a.created' => SORT_DESC])
->limit(40)
->all();
В итоге потом данные в цикле доступны примерно вот так $value['title'], $value[id], а мне надо чтобы были объекты, так как установил расширение yii2-images и оно не работает с массивами.
Вот так пробовал:
Код: Выделить всё
$last_news_sitebar2 = Articles::find()
->select(['articles.id', 'articles.title', 'articles.created'])
->with(['categories' => function(\yii\db\ActiveQuery $query){
$query->select('alias');
},
'themes' => function(\yii\db\ActiveQuery $query){
$query->select('theme_alias');
},
'imageRico'])
->where(['visible' => '1', 'articles.category_id' => '1'])
->orderBy(['articles.created' => SORT_DESC])
->limit(40)
->all();
Тоже не могу получить данные из themes и categories.
Если вот так написать:
Код: Выделить всё
$last_news_sitebar3 = Articles::find()->with(['themes', 'categories', 'imageRico'])->limit(40)->all();
Все данные подгружаются из всех таблиц, 6о вместе с ними и много лишнего.