Привет всем.
Есть
Модель с связью, но для связи мне нужно использовать
вложенный запрос
что-то типа:
SELECT * FROM `category` INNER JOIN <b>(SELECT * FROM `category_value` WHERE ... UNION ...)</b> WHERE category.id = 2
но чтобы загрузилось в связь categoryValue
Делаю так:
Category::find()
->innerJoin(['categoryValue' => CategoryValueQuery::get($id, $language_id)], 'categoryValue.category_id = category.id')
->andWhere(['category.id' => $id])
->one();
связь categoryValue - пуста.
Делаю так:
Category::find()
->joinWith(['categoryValue' => function($query) use ($id, $language_id) {
return CategoryValueQuery::get($id, $language_id)->all();
// $query = ^ тоже самое
}])
->andWhere(['category.id' => $id])
->one();
Так вообще вложенный запрос не участвует ни в чем.
Вот связь categoryValue в модели Category
public function getCategoryValue()
{
return $this->hasOne(CategoryValue::className(), ['category_id' => 'id']);
}
Подскажите пожалуйста, как сделать связь с помощью вложенного запроса?