ArrayDataProvider

时间:2016-03-29 06:00:38

标签: yii2 dataprovider

当我使用

    $searchModel = new UserSearch();
    $dataProvider = $searchModel->search(Yii::$app->request->queryParams);

然后在gridview中使用此数据提供者,并像这样获取选定的行

   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中使用此提供程序,现在我使用

时正在运行
  if ($model->load(Yii::$app->request->post())) {
  $selectedUsers = $_POST['selection'];
  }

它给出了这个数组的数组([0] => 0 [1] => 1 [2] => 2)
意味着它不会给用户的ID。我需要选择用户的ID。

1 个答案:

答案 0 :(得分:1)

我已经解决了自己。只需在数组dataprovider中添加一个键

$dataProvider = new ArrayDataProvider([
    'allModels' => $modelUser,
    'Key' => 'id',
    'pagination' => [
        'pageSize' => 50,
    ],
]);