Передача данных из контроллера в gridview сбой с

php gridview yii2 yii-extensions yii2-advanced-app

36 просмотра

1 ответ

931 Репутация автора

Я пытался передать массив данных модели из контроллера в представление сетки в представление сетки, но я получаю сообщение об ошибке:

The "query" property must be an instance of a class that implements the 
QueryInterface e.g. yii\db\Query or its subclasses.

Это код контроллера:

 public function actionAddunits($id){

  $countUnits = Unitslocation::find()->where(['officelocationid'=>$id])->count();
    if(count($countUnits)>0){

   $dataProvider = new ActiveDataProvider([
        'query' =>Unitslocation::find()->where(['officelocationid'=>$id])->all()
    ]);

      return $this->render('assignunits', ['dataProvider'=>$dataProvider]);

    }else{
        return 0;
    }

}

Представление (assignunits.php)

<?php
echo GridView::widget([
'dataProvider' => $dataProvider,
'columns' => [
    // ...
    [
        'class' => 'yii\grid\CheckboxColumn',
        // you may configure additional properties here
    ],
],]);

?>

Что может быть не так?

Автор: Geoff Источник Размещён: 18.07.2016 12:15

Ответы (1)


2 плюса

3347 Репутация автора

Решение

ActivedataProviderнужен query. В вашем случае вы отправляете результат query(all()).

Удалить all()в свой query.

$query = Unitslocation::find()->where(['officelocationid'=>$id]);
$dataProvider = new ActiveDataProvider([
    'query' => $query,
]);
Автор: vishuB Размещён: 18.07.2016 12:22
Вопросы из категории :
32x32