今天研究了一下Yii框架中自带的搜索分页,有了一点点小收获,在这里记录一下。
我是用Gii直接生成的model层与searchmodel然后在它的基础上做的修改。
首先,Yii中自带分页,你只需要在你的searchmodel中的search()方法下的,
$dataProvider = new ActiveDataProvider([
'query' => $query,
'pagination' => ['pageSize' => 2],
]);
加上pagination就可以了,pageSize设置分页每页显示条数。
下面
$query->andFilterWhere()
里面的都是过滤条件 where ,它这里会显示出你表中所有字段都是条件,每一个字段默认都可以搜索,你可以根据你自己的需求来修改。
然后在控制器层,index()方法中,
$searchModel = new BespSearch();
$dataProvider = $searchModel->search(Yii::$app->request->queryParams);
Yii::app−>request−>queryParams这个是获取它表单提交过来的数据与方法的参数。当你现在打印dataProvider的时候 是一个Object的 ,不会直接能看到你想要的数据,如果你想要看到数据,可以执行
$dataProvider->getModels();
可以让你查询到最终执行结果
视图层
搜索框与按钮
<?= $form->field($searchModel, 'time',
['options' => ['class' => 'btn'],
'inputOptions' => [
'placeholder' => '时间搜索',
'class' => 'input-sm form-control'
],
])->label(false) ?>
<span class="input-group-btn">
<?= Html::submitButton('搜索', ['class' => 'btn btn-sm btn-primary']) ?>
</span>