Yii2 activequery отображать данные для просмотра - PullRequest
0 голосов
/ 20 сентября 2019

Я хочу запросить данные из определенной таблицы из базы данных и отобразить их в моем представлении.

Из функции моего контроллера.

 public function actionViewPds()
{ 
    //$model = new User();
    $query= new \yii\db\Query;
    $provider=new  ArrayDataProvider([
      'allModels'=>$query->from('{{%tbl_family_background}}')->orderBy('[[nfamily_id]]')->all(),
    ]);

    return $this->render('view-pds',[
      'model' => $provider,
    ]);
}

И в моем представлении, где я хочу отобразитьданные.

<?php $model->nfamily_id;?>

и моя ошибка

Unknown Property – yii\base\UnknownPropertyException

Получение неизвестного свойства: yii \ data \ ArrayDataProvider :: nfamily_id

1 Ответ

0 голосов
/ 22 сентября 2019

$model, на ваш взгляд, является экземпляром ArrayDataProvider.Для доступа к моделям вам необходимо использовать свойство allModels.Существуют все модели, возвращенные вашим запросом.

Но в этом случае вы можете просто полностью отказаться от провайдера данных, поскольку, похоже, вы его не используете.

Так что в контроллере:

return $this->render('view-pds',[
    'models' => $query->from('{{%tbl_family_background}}')->orderBy('[[nfamily_id]]')->all(),
]);

В представлении:

foreach($models as $model) {
    echo $model['nfamily_id'] . "\n";
}
...