@akula22

Как грамотно в gridview вывести имена категориий?

В гриде нужно вывести имя категории, имеем category_id
можно сделать так:
[
              'attribute' => 'category_id', 
                'content'=>function($data) {
                    return $data->getCategoryName();
                },
]

и в модели по связи доставать имя
public function getParent()
    {
        return $this->hasOne(\app\modules\team\models\TeamCategory::className(), ['id' => 'category_id']);
    }
public function getCategoryName()
    {
        $parent = $this->parent;
        return $parent->title ;
    }

и получаем 20 лишних запросов в БД.
А в данном примере у меня 20 записей с одной категорией, и нет смысле делать 20 запросов, как можно сделать что запрос был один, как-то сначала получить список айди категорий и только по ним сделать один запрос
  • Вопрос задан
  • 64 просмотра
Решения вопроса 1
qonand
@qonand
Software Engineer
лишние запросы вызваны тем что Вы используете отложенную загрузку, а для вывода данных в грид лучше использовать жадную загрузку в частности joinWith
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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