Как правильно выводить связанную таблицу в GridView?

В моделе content есть связь с категорией.

public function getCategory(){
return $this->hasOne(DataCategory::className(), ['id_category' => 'category'])
->viaTable('data_subcategory', ['id_subcategory' => 'subcategory']);
}
Работает.
Но возникла другая проблема, теперь при вызове в gridview 'category.category_name',
он мне на каждую запись делает 2 запроса - один к таблице "category", второй к таблице "subcategory"
SELECT * FROM `data_subcategory` WHERE `id_subcategory`=1
SELECT * FROM `data_category` WHERE `id_category`='1'
Как это побороть?
  • Вопрос задан
  • 112 просмотров
Решения вопроса 1
sanchezzzhak
@sanchezzzhak
Ля ля ля...
Когда вы передаете Query в ActiveDataProvider

вы можете у модели Query указать joinWith(['category']);
Тогда будет 2-3~ запроса.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы