YII2,gradview使用实例

本文详细介绍了在yii2框架中使用GridView组件的方法,包括数据提供者、搜索过滤、操作列配置等关键步骤,旨在帮助开发者高效地展示和操作数据。

1.view模版中使用

  GridView::widget([
        'dataProvider' => $dataProvider,
        'filterModel' => $searchModel,
        'columns' => [
            ['class' => 'yii\grid\SerialColumn'],

            'id',
            ['attribute'=>'title','headerOptions' => ['width' => '250'],],
            'url:url',
            
            [
                'attribute'=>'type',
                'value' => function ($data) {
                    return '';
                },
                'filter' => '',//是否添加过滤器(本字段的搜索框)
            ],
            [
                'attribute'=>'status',
                'value' => function ($data) {
                    return $data->status?'正常':'不正常';
                },
                'filter' => '',
            ],
            [
               'attribute'=>'created',
                   'value'=>function(){
                        return Yii::$app->user->identity->username;
                    },
                    'filter'=>'',
            ],
             'ctime':datetime',

            ['class' => 'yii\grid\ActionColumn','header' => '操作','template'=>'{update} {delete}'],
        ],
    ]);

2.controller中

        $searchModel = new PostSearch;
        $dataProvider = $searchModel->search(Yii::$app->request->getQueryParams());
        return $this->render('index', [
            'dataProvider' => $dataProvider,
            'searchModel' => $searchModel,
        ]);

3.model中

    public function search($params)
    {
        $query = Post::find();
        //$query->joinWith(['user']); // 添加关联条件
        $dataProvider = new ActiveDataProvider([
            'query' => $query,
            'sort'=>['defaultOrder'=>['ctime' => SORT_DESC]]
        ]);
        if (!($this->load($params) && $this->validate())) {
            return $dataProvider;
        }

        $query->andFilterWhere([
            'id' => $this->id,
            [...]
        ]);

        $query->andFilterWhere(['like', 'title', $this->title])->[...];

        return $dataProvider;
    }

 

转载于:https://www.cnblogs.com/benlightning/p/4386524.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值