Как изменить результаты, сгенерированные функцией Yii2 createCommand () - PullRequest
0 голосов
/ 06 мая 2019

У меня есть SQL-запрос в моем контроллере. Результаты имеют два поля: id_person и name_person. Затем я использую ArrayDataProvider, чтобы показать результаты в GridView:

return new ArrayDataProvider([
    'allModels' => Yii::$app->getDb()->createCommand($mySql)->queryAll()
]);

Но идентификатор кнопки обновления не равен id_person. У него есть автоматически сгенерированный идентификатор.

Итак, у меня есть провайдер данных с полями: id, id_person и name_person. Мне нужно заменить id на id_person.

Я могу разрешить его в своем файле просмотра под действием кнопки обновления, но может быть лучше разрешить его в моем контроллере.

Я проверил документацию API для Yii 2.0 , но она мне не помогает.

1 Ответ

1 голос
/ 06 мая 2019

Необходимо настроить свойство ArrayDataProvider::$key, чтобы указать столбец с идентификатором записи:

return new ArrayDataProvider([
    'allModels' => Yii::$app->getDb()->createCommand($mySql)->queryAll(),
    'key' => 'id_person',
]);
...