后台状态修改(发布与否)总结

index.php中:

use yii\helpers\Url;
use common\libs\Constants;(会用到它的方法)
 
[
    'attribute' => 'status',
    'format' => 'raw',
    'value' => function ($model, $key, $index, $column) {
        if ($model->status == 1) {
            $url = Url::to([
                'status',
                'id' => $model->id,
                'status' => 0,
                'field' => 'status'
            ]);
            $class = 'btn btn-info btn-xs btn-rounded';
            $confirm = Yii::t('app', 'Are you sure you want to cancel release?');
        } else {
            $url = Url::to([
                'status',
                'id' => $model->id,
                'status' => 1,
                'field' => 'status'
            ]);
            $class = 'btn btn-default btn-xs btn-rounded';
            $confirm = Yii::t('app', 'Are you sure you want to publish?');
        }
        return Html::a(Constants::getArticleStatus($model->status), $url, [
            'class' => $class,
            'data-confirm' => $confirm,
            'data-method' => 'post',
            'data-pjax' => '0',
        ]);

    },
    'filter' => Constants::getArticleStatus(),
],
ArticleController中
use backend\actions\StatusAction;(调用的公共类)
public function actions()
{
    return [
        'status' => [
            'class' => StatusAction::className(),
            'modelClass' => Article::className(),
        ],
    ];
}
ArticleSearch中
'article.status' => $this->status,(加上了表明,因为有联查造作,同时其他表也有status字段)


猜你喜欢

转载自blog.csdn.net/alashan007/article/details/78328113