当我使用
时 $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。
答案 0 :(得分:1)
我已经解决了自己。只需在数组dataprovider中添加一个键
$dataProvider = new ArrayDataProvider([
'allModels' => $modelUser,
'Key' => 'id',
'pagination' => [
'pageSize' => 50,
],
]);