如何修改Yii2 createCommand()函数生成的结果

时间:2019-05-06 17:42:18

标签: php sql database yii2 dataprovider

我的控制器中有一个SQL查询。结果有两个字段:id_personname_person。然后,我使用ArrayDataProviderGridView中显示结果:

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

但是更新按钮的ID不是id_person。它具有自动生成的ID。

因此,我有一个数据提供者,其字段为:idid_personname_person。我需要将id替换为id_person

我可以在“更新”按钮的作用下在视图文件中对其进行解析,但最好在控制器中进行解析。

我检查了API Documentation for Yii 2.0,但这对我没有帮助。

1 个答案:

答案 0 :(得分:1)

您应该配置ArrayDataProvider::$key属性以指定具有记录ID的列:

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