Как определить пользовательскую метку в представлении сетки, заполненную ArrayDataProvider?

Я получаю некоторые данные, используя веб-сервис в формате JSON, и хочу отобразить их с помощью gridview. Я использую ArrayDataProvider для отправки данных в gridview, используя этот код:

$dataProvider = new ArrayDataProvider([
   'allModels' => $data,
   'pagination' => [
       'pageSize' => 10,
    ],
    'sort' => [
       'attributes' => ['fname', 'lname', 'age', 'email'],
    ],
]);

Как я могу изменить метку столбцов в сетке? Например, имя вместо fname?

Спасибо.


person hd.    schedule 10.09.2017    source источник


Ответы (2)


Я нашел ответ для этого URL https://github.com/yiisoft/yii2/issues/11490

Добавьте новое свойство ArrayDataProvider::modelClass, чтобы вручную указать, какую модель ArrayDataProvider должен использовать для создания меток столбцов. Это изменение позволит ArrayDataProvider правильно генерировать метки столбцов с помощью метода Model::getAttributeLabel(), когда предоставленный массив данных пуст.

person hd.    schedule 10.09.2017

В gridview вы можете изменить атрибут метки

  <?= GridView::widget([
      'dataProvider' => $dataProvider,
      'columns' => [
          ['class' => 'yii\grid\SerialColumn'],
          [
              'label' => 'First Name',
              'attribute' => 'fname',
          ],
  ]);

http://www.yiiframework.com/doc-2.0/yii-grid-datacolumn.html

http://www.yiiframework.com/doc-2.0/yii-grid-datacolumn.html#$label-detail

person scaisEdge    schedule 10.09.2017