YII2中ActiveDataProvider与GridView的配合使用&DetailView
$provider = new ActiveDataProvider([ //为ActiveDataProvider对象提供一个查询对象 'query' => $query, //设置分页参数 'pagination' => [ //分页大小 'pageSize' => 3, //设置地址栏当前页数参数名 'pageParam' => 'p', //设置地址栏分页大小参数名 'pageSizeParam' => 'pageSize', ], //设置排序 'sort' => [ //默认排序方式 'defaultOrder' => [ 'id' => SORT_DESC, ], //参与排序的字段 'attributes' => [ 'id', 'name', 'sex', 'age' ], ], ]);$getInfo = \common\models\GachaCombineGoods::find()->count();总数据
$dataProvider->setTotalCount($getInfo); 设置分页显示
DetailView:主要展示详情信息,只展示一条数据
(2)
ActiveDataProvider:也可以在rules中定义需要搜索的字段可以是二维数组:
$resultData = [
["id"=>1,"name"=>"Cyrus","email"=>"risus@consequatdolorvitae.org"],
["id"=>2,"name"=>"Justin","email"=>"ac.facilisis.facilisis@at.ca"],
["id"=>3,"name"=>"Mason","email"=>"in.cursus.et@arcuacorci.ca"],
["id"=>4,"name"=>"Fulton","email"=>"a@faucibusorciluctus.edu"]
];
//不需要在class中添加元素
$dataProvider = new ArrayDataProvider([
'allModels' => $resultData,
'pagination' => false, // 可选 不分页
'sort' => [
'attributes' => ['id', 'name', 'email'],
],
]);
GridView 中显示:
[
'attribute'=>'out_trade_no',
'label'=>'表订单号'
],
[
'attribute' => 'total_fee',
'label'=>'价值',
'value' => function ($model) {
return $model['total_fee'] / 100;
}
],
[
'attribute'=>'created_at',
'label'=>'创建时间',
'value'=>function($model){
return date("Y-m-d H:i:s",$model['created_at']);
}
或者:
'attribute' => 'created_at','format' => ['date', 'Y-m-d H:i:s'],
],
后端分页可以:
$dataProvider = new ArrayDataProvider([
'allModels' => $res['stocks'],
'pagination' => false,
]);
$pages = new Pagination(['totalCount' => $res['total']]);
前端分页可以:
<?=
LinkPager::widget([
'pagination' => $pages,
])
?>

浙公网安备 33010602011771号