yii2 配合bootstrap添加按钮

新增一个按钮

1、bootstrap 官网:http://getbootstrap.com/

2、bootstrap 中文官网:http://v3.bootcss.com/

视图文件中:

<?= GridView::widget([
        'dataProvider' => $dataProvider,
        'filterModel' => $searchModel,
        'columns' => [
            [
                'class' => 'yii\grid\ActionColumn',             // 按钮类默认只有 3 个按钮
                'template' => '{view}{update}{delete}{approve}',// template 里面可以添加按钮,每个按钮对应控制器中 action 开头的方法,如:actionView , 就是查看按钮的方法
                'buttons' => [                                  // 新添加的按钮写在 buttons 里面
                    'approve' => function($url,$model,$key){
                        $options = [
                            'title' => Yii::t('yii','审核'),      // yii 的 t() 方法用于翻译多种语言
                            'aria-label' => Yii::t('yii','审核'),
                            'data-confirm' => Yii::t('yii','你确定通过这条评论吗?'),  // data-confirm 用于弹出一个确认对话框
                            'data-method' => 'post',
                            'data-pjax' => '0',
                        ];
                        // glyphicon glyphicon-check 这个图标在 bootstrap 中文官网 -> 组件 -> Glyphicons字体图标
                        return Html::a('<span class="glyphicon glyphicon-check"></span>',$url,$options);
                    },
                ],
            ],
        ],
    ]); ?>

然后再在控制器文件中写该按钮所对应的动作方法:(action+按钮名

    /**
     * @purpose     :   审核按钮所对应的方法
     * @param $id   :   该条评论的id
     * @return \yii\web\Response    : 重定向到 index 页面
     */
    public function actionApprove($id)
    {
        $model = $this->findModel($id);
        // 审核
        if($model->approve()){
            return $this->redirect(['index']);
        }
    }

最后再在模型文件中写入业务逻辑:

    /**
     * @将评论的状态改为已审核(将 status 由 1 改为 2)
     * @return bool 
     */
    public function approve()
    {
        $this->status = 2;
        return (($this->save()) ? true : false);
    }

注:本文为作者(44106-kangaroo) 看完魏羲教你学Yii2.0 视频后所记,如有转载请注明出处:http://www.cnblogs.com/chrdai/p/7999519.html