数据提供者
提供数组数据
$posts = $post->find()->asArray()->all();
$dataProvider = new \yii\data\ArrayDataProvider([
'allModels' => $posts,
'pagination' => [
'pageSize' => 11,
],
'sort' => [
'attributes' => ['posts_id'], //指定默认可排序字段
],
]);
活动数据提供者
$post = $post::find();
$dataProvider = new ActiveDataProvider([
'query'=> $post,
'pagination' => [
'pageSize' => 10,
],
'sort' => [
'defaultOrder' => [
'created_at' => SORT_DESC,
'title' => SORT_ASC,
]
],
]);
Provider 连表数据提供者
$query = new Posts();
$query = $query::find()->select("posts.*, category.cat_name, user.username")
->leftJoin("category", "category.id = posts.cat_id")
->leftJoin("user", "posts.user_id = user.id");
// $qeury
// ->select("T1.*, T2.cat_name")
// ->from("posts as T1")->orderBy("posts_id desc");
// ->leftJoin("category as T2", "T1.cat_id = T2.id");
$dataProvider = new \yii\data\ActiveDataProvider([
'query'=> $query,
'pagination' => [
'pageSize' => 10,
],
'sort' => [
'defaultOrder' => [
'created_at' => SORT_DESC,
]
],
]);
GridView::Widget();
<?php
echo \yii\grid\GridView::widget(
[
'dataProvider' => $providerData,
'layout'=> '{summary}{items}<div class="text-right tooltip-demo">{pager}</div>',
'columns' => [
// ['class' => 'yii\grid\SerialColumn'], 数组序列号
// 数据提供者中所含数据所定义的简单的列
// 使用的是模型的列的数据
'posts_id:raw:文章ID',
'title:text:标题',
//利用数组返回数据
[
'class' => 'yii\grid\DataColumn', //由于是默认类型,可以省略
'value' => function ($data) {
return mb_substr($data['summary'],0, 10, 'utf-8'); // 如果是数组数据则为 $data['name'] ,例如,使用 SqlDataProvider 的情形。
},
'label'=>'摘要',
],
[
'value'=>function($data){
return "<img width=50, height=50 src='".$data['label_img']."'>";
},
'format' =>'html',
'label' => '缩略图',
],
[
'value'=>function($data){
return $data['cat_name'];
},
'attribute'=> 'cat_id',
'format'=>'raw',
'label' => '分类'
],
// "cat_id:text:分类ID",
"username:text:作者",
[
'value' => function($data){
if($data['is_valid']){
return "已发布";
}
return "未发布";
},
'label'=> "是否发布",
'format'=> 'raw',
'attribute'=> 'is_valid',
],
[
'value' => function($data) {
if (isset($data['created_at'])) {
return date('Y-m-d', $data['created_at']);
}
},
'attribute' => 'created_at', //用于排序,如果不写,不能点击表头排序,非必须
'label' => '创建日期', // 自定义表头,非必须
'format' => 'raw', // 格式方式,非必须
],
[
'value' => function($data) {
if (isset($data['updated_at'])) {
return date('Y-m-d', $data['updated_at']);
}
},
'attribute' => 'updated_at', //用于排序,如果不写,不能点击表头排序,非必须
'label' => '修改日期', // 自定义表头,非必须
'format' => 'raw', // 格式方式,非必须
],
[
'value'=>function($data){
$url = \yii\helpers\Url::to(['post/updata']);
return "<a href='$url'>修改</a>";
},
'format'=>'html'
],
],
]
);