Yii2 ArrayDataProvider中的默认id
当我使用Yii2 ArrayDataProvider中的默认id,yii2,dataprovider,Yii2,Dataprovider,当我使用 $searchModel = new UserSearch(); $dataProvider = $searchModel->search(Yii::$app->request->queryParams); if ($model->load(Yii::$app->request->post())) { $selectedUsers = $_POST['selection']; } 然后在gridview中使用此data
$searchModel = new UserSearch();
$dataProvider = $searchModel->search(Yii::$app->request->queryParams);
if ($model->load(Yii::$app->request->post())) {
$selectedUsers = $_POST['selection'];
}
然后在gridview中使用此dataprovider,并获得如下所示的选定行
if (Yii::$app->request->post()) {
$selectedUser = $_POST['selection'];
}
它工作正常,我有一个选定用户id的数组,就像这个数组([0]=>5[1]=>7),其中5和7是用户id
但是当我在$dataprovider中使用这样的条件时
比如说
$modelUser = User::find()
->where(['class' => $model->class_id])
->all();
$dataProvider = new ArrayDataProvider([
'allModels' => $modelUser,
'pagination' => [
'pageSize' => 50,
],
]);
然后在gridview中使用此提供程序,现在在使用
$searchModel = new UserSearch();
$dataProvider = $searchModel->search(Yii::$app->request->queryParams);
if ($model->load(Yii::$app->request->post())) {
$selectedUsers = $_POST['selection'];
}
它给出了如下数组([0]=>0[1]=>1[2]=>2)意思是说它不提供用户的ID。我需要所选用户的ID。我已经解决了自己的问题。只需在数组dataprovider中添加一个键
$dataProvider = new ArrayDataProvider([
'allModels' => $modelUser,
'Key' => 'id',
'pagination' => [
'pageSize' => 50,
],
]);
$POST['selection']
已更改为其他内容查看生成的html并查找发布数据的确切名称或id。请提供您的查看代码有更多属性,但我只在此处写入一个属性它将为您提供选定的列。首先看看Yii::$app->request->post()
包含的内容。