如何修改 Yii2 createCommand() 函数生成的结果
How to modify results generated by Yii2 createCommand() function
我的控制器中有一个 SQL 查询。结果有两个字段:id_person
和 name_person
。然后我使用 ArrayDataProvider
在 GridView
:
中显示结果
return new ArrayDataProvider([
'allModels' => Yii::$app->getDb()->createCommand($mySql)->queryAll()
]);
但是更新按钮的id不是id_person
。它有一个自动生成的 ID。
所以我有一个包含以下字段的数据提供者:id
、id_person
和 name_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',
]);
我的控制器中有一个 SQL 查询。结果有两个字段:id_person
和 name_person
。然后我使用 ArrayDataProvider
在 GridView
:
return new ArrayDataProvider([
'allModels' => Yii::$app->getDb()->createCommand($mySql)->queryAll()
]);
但是更新按钮的id不是id_person
。它有一个自动生成的 ID。
所以我有一个包含以下字段的数据提供者:id
、id_person
和 name_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',
]);