Provider

数据提供者

提供数组数据

$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'
            ],
        ],

    ]
);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值