Как правильно работать с жадной загрузкой при использовании виджета ListView?

Пытаюсь организовать работу LIstView со связями и жадной загрузкой вот так так организую жадную загрузку

$allGods=Gods::find()->with('prise','images','addfeilds')->all();


вот так предаю в представление

<?= ListView::widget([
         'dataProvider'  => $productsDataProvider,
         'itemView'      => '_gods',
         'viewParams' => [
         'allGods'       => $allGods,]
 ]) ?>


пытаюсь так использовать в виде

var_dump($model->images)

получаю дополнительный sql запрос. Понимаю что делаю что то не так. Не подскажите как правильно ?
  • Вопрос задан
  • 69 просмотров
Решения вопроса 1
qonand
@qonand
Software Engineer
при использовании жадной загрузки у Вас всегда будет идти один дополнительный запрос на загрузку реляции (без разницы будете использовать with или joinWith) ведь фреймворку нужно как-то загрузить объекты реляции. Другой вопрос насколько критичны для Вашей системы такие запросы и насколько Ваша архитектура позволяет от них избавиться. Если у Вас в проекте используется одна БД и наличие дополнительных запросов слишком критичны используйте обычный join
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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