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()
包含的内容。