新增一個按鈕
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
