Sha*_*ika 6 pagination gridview filter yii2
我在Yii2中使用了CRUD生成器,它为我的actionIndex控制器生成了以下代码......
public function actionIndex()
{
$searchModel = new LeadSearch();
$dataProvider = $searchModel->search(Yii::$app->request->queryParams);
return $this->render('index', [
'searchModel' => $searchModel,
'dataProvider' => $dataProvider,
]);
}
Run Code Online (Sandbox Code Playgroud)
我试图对这个默认代码做两件事:
1)设置页面大小,使显示它的gridview只显示10行
2)修改$searchModel它只返回表中状态列匹配某些多个值(IN运算符)的记录...或者更好的是,所有与给定值不匹配的记录.
对于#1,我看到很多例子在使用时设置'分页' ActiveDataProvider,但没有search().这段代码对我不起作用......
$dataProvider = $searchModel->search(
Yii::$app->request->queryParams, ['pagination' => [ 'pageSize' => 10 ]]
);
Run Code Online (Sandbox Code Playgroud)
对于#2,我知道我们可以通过将新的LeadSearch对象声明为...来进行过滤.
$searchModel = new LeadSearch([ 'status' => 'open' ]);
Run Code Online (Sandbox Code Playgroud)
......但这样的事情不起作用......
$searchModel = new LeadSearch([ 'status' => ['open', 'pending'] ]);
Run Code Online (Sandbox Code Playgroud)
GAM*_*ITG 14
您需要在搜索模型中添加pagination选项,ActiveDataProvider并且还要置于where或andWhere处于$query条件状态.
$query = modalName::find()->andWhere([ 'status' => ['open', 'pending'] ]);
$dataProvider = new ActiveDataProvider([
'query' => $query,
'pagination' => [ 'pageSize' => 10 ],
]);
Run Code Online (Sandbox Code Playgroud)
小智 5
$searchModel = new PersonSearch();
$dataProvider = $searchModel->search(
Yii::$app->request->queryParams);
$dataProvider->pagination = ['pageSize' => 10,];
Run Code Online (Sandbox Code Playgroud)