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

How to modify results generated by Yii2 createCommand() function

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

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

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

所以我有一个包含以下字段的数据提供者:idid_personname_person。我需要用 id_person.

替换 id

我可以在更新按钮的操作下在我的视图文件中解决它,但最好在我的控制器中解决它。

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

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

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