Ленивая загрузка и GridView

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Ответить
Аватара пользователя
Chelobaka
Сообщения: 214
Зарегистрирован: 2018.06.01, 09:54

Ленивая загрузка и GridView

Сообщение Chelobaka »

Захотел я связать таблицу:

Код: Выделить всё

public function getMenupoints() {
        return $this->hasMany(Menupoint::class, ['par' => 'id_menupoint']);
    }
В надежде позже использовать в GridView. То есть:

Код: Выделить всё


 $dataProvider = new ActiveDataProvider([
                'query' => $model->menupoints,
                'pagination' => [
                    'pageSize' => 20,
                ],
            ]);
            
Что вызвало ошибку:
The "query" property must be an instance of a class that implements the QueryInterface e.g. yii\db\Query or its subclasses.

Пришлось менять на

Код: Выделить всё


 $dataProvider = new ActiveDataProvider([
                'query' => Menupoint::find()->where(['par' => $id]),
                'pagination' => [
                    'pageSize' => 20,
                ],
            ]);
            
           
Как можно преобразовать $model->menupoints к нужному формату?
andku83
Сообщения: 988
Зарегистрирован: 2016.07.01, 10:24
Откуда: Харьков

Re: Ленивая загрузка и GridView

Сообщение andku83 »

Код: Выделить всё

 $dataProvider = new ActiveDataProvider([
    'query' => $model->getMenupoints(),
    'pagination' => [
         'pageSize' => 20,
    ],
]);
Аватара пользователя
Chelobaka
Сообщения: 214
Зарегистрирован: 2018.06.01, 09:54

Re: Ленивая загрузка и GridView

Сообщение Chelobaka »

andku83 писал(а): 2018.06.18, 17:43

Код: Выделить всё

 $dataProvider = new ActiveDataProvider([
    'query' => $model->getMenupoints(),
    'pagination' => [
         'pageSize' => 20,
    ],
]);
Спасибо, почитал про связанные данные, стало ясно еще больше.
Ответить