列表的自动分页
使用 ActiveDataProvider
来进行分页和数据传输
使用方法:
- 在控制器中引入
ActiveDataProvider
use yii\data\ActiveDataProvider;
在需要调用的地方,对其实例化
$dataProvider = new ActiveDataProvider([
'query' => Role::find()->where('state_delete is null')->orderBy('roleid desc'),
'pagination' => [
'pageSize' => 5,
],
'sort' => [
'defaultOrder' => [
'listorder' => SORT_ASC,
]
],
]);
代码说明:
query
用来查询数据库中的信息,将其保存到类里面;
pagination
用来存储分页页数;
sort
用来存储排序信息。
这样就实例化了一个 ActiveDataProvider
对象!
- 使用
ActiveDataProvider
首先,在渲染视图中传递该对象(此为对象数组!)
在视图中引用
use yii\widgets\LinkPager;
来引入分页小插件;
$roles=$dataProvider->getModels();
通过调用 getModels()
方法,来获得数据库中查询出来的数据
接下来就是用 foreach
循环出数组中的信息;
通过
$role->roleid;
调用属性的方式来获取数据;
$role->whetherDisabled();
并能使用其中的方法。
分页时,则使用:
$pages=$dataProvider->getPagination();
echo LinkPager::widget([
'pagination' => $pages,
]);
来调用分页小插件,从而自动进行分页。
到这里,Yii框架的分页就介绍完了!