Задать вопрос

Как правильно выводить связанную таблицу в 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'
Как это побороть?
  • Вопрос задан
  • 114 просмотров
Подписаться 1 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Onskills
    PHP: базовый курс
    1 месяц
    Далее
  • teamcoding
    TC200PY Разработка PHP веб-приложений на Yii2. Шаблон приложения advanced
    3 месяца
    Далее
  • FructCode
    Yii2 Фреймворк
    2 месяца
    Далее
Решения вопроса 1
sanchezzzhak
@sanchezzzhak
Ля ля ля...
Когда вы передаете Query в ActiveDataProvider

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

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

Похожие вопросы