VerbAlexVlad
@VerbAlexVlad
Программист-любитель

Как отобразить GridView::widget виде?

Если я делаю выборку данных через find(), то все работает, здесь все понятно:
$query = Products::find()
    ->select('id, model_id, content')
    ->with('productmodel')
    ->where(['shops_id' => Yii::$app->user->id]);

$dataProvider = new ActiveDataProvider(
    [
        'query' => $query,
    ]);

GridView::widget([
     'dataProvider' => $dataProvider,
     'columns' => [
         ['class' => 'yii\grid\ActionColumn'],

         [
             'attribute' => 'model_id',
             'value' => function($data){
                 return $data->model_id;
             },
         ],

     ],
 ]);


Но если через (new \yii\db\Query()), то выводит пустые строки:
$query = (new \yii\db\Query())
    ->select(['p.id', 'm.model'])
    ->from(['p' => Products::tableName()])
    ->innerJoin(['m' => 'model_product'], 'm.id = p.model_id')
    ->where(['shops_id' => Yii::$app->user->id]);

$dataProvider = new ActiveDataProvider(
    [
        'query' => $query,
    ]);

GridView::widget([
     'dataProvider' => $dataProvider,
     'columns' => [
         ['class' => 'yii\grid\ActionColumn'],

         [
             'attribute' => 'model',
             'value' => function($data){
                 return $data->model;   // Так уже не работает
             },
         ],

     ],
 ]);


Как поместить в GridView данные полученные через (new \yii\db\Query())??
  • Вопрос задан
  • 147 просмотров
Решения вопроса 1
Maksclub
@Maksclub
maksfedorov.ru
в случае с yii\db\Query() возвращается массив, а не массив объектов, нужно поменять

5a52aa62250c1951180081.png

www.yiiframework.com/doc-2.0/guide-output-data-wid...
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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