切换用户确认无效

时间:2018-08-24 12:35:00

标签: yii2

我正在使用以下用户平台开发应用程序:

UserConfirmation

控制器

 public function behaviors()
{
    return [
        'verbs' => [
            'class' => VerbFilter::className(),
            'actions' => [
                'delete' => ['post'],
            ],
        ],
    ];
}  

    public function actionIndex()
{
    $searchModel = new UserSearch();
    $dataProvider = $searchModel->search(Yii::$app->request->queryParams);

    return $this->render('index', [
        'searchModel' => $searchModel,
        'dataProvider' => $dataProvider,
    ]);
} 

模型

    public function attributeLabels()
{
    return [
        'user_id' => Yii::t('app', 'User ID'),
        'user_login_id' => Yii::t('app', 'User Login ID'),
        'user_password' => Yii::t('app', 'Password'),
        'user_type' => Yii::t('app', 'User Type'),
        'is_block' => Yii::t('app', 'Block Status'),
        'is_confirmed' => Yii::t('app', 'Block Status'),
        'confirmed_at' => Yii::t('app', 'Date Confirmed'),
        'created_at' => Yii::t('app', 'Created At'),
        'created_by' => Yii::t('app', 'Created By'),
        'updated_at' => Yii::t('app', 'Updated At'),
        'updated_by' => Yii::t('app', 'Updated By'),
        'current_pass' => Yii::t('app','Current Password'),
        'new_pass' => Yii::t('app','New Password'),
        'retype_pass' => Yii::t('app', 'Retype Password'),
        'admin_user' => Yii::t('app', 'Admin Username'),
        'create_password' => Yii::t('app', 'Password'),
        'confirm_password' => Yii::t('app', 'Confirm Password'),

    ];
}

查看

<?php Pjax::begin() ?>
<div class="box box-primary">
    <div class="box-body">
        <?=
        GridView::widget([
            'dataProvider' => $dataProvider,
            'filterModel' => $searchModel,
            'layout' => "{items}\n{pager}",
            'columns' => [        
                'user_login_id',
                'user_type',

        [
			'attribute' => 'created_at',
			'value' => function ($data) {
					return (!empty($data->created_at) ? Yii::$app->formatter->asDate($data->created_at) : ' - ');
				},            
        ], 
                
                        [
                            'header' => Yii::t('urights', 'Confirmation'),
                            'value' => function ($model) {
                                if (!$model->is_confirmed) {
                                    return '<div class="text-center"><span class="text-success">' . Yii::t('urights', 'Confirmed') . '</span></div>';
                                } else {
                                    return Html::a(Yii::t('urights', 'Confirm'), ['confirm', 'id' => $model->user_id], [
                                                'class' => 'btn btn-xs btn-success btn-block',
                                                'data-method' => 'post',
                                                'data-confirm' => Yii::t('urights', 'Are you sure you want to confirm this user?'),
                                    ]);
                                }
                            },
                                    'format' => 'raw',
                                ],                                           
                    
                                [
                                    'header' => Yii::t('urights', 'Block status'),
                                    'value' => function ($model) {
                                        if ($model->is_block) {
                                            return Html::a(Yii::t('urights', 'Unblock'), ['block', 'id' => $model->user_id], [
                                                        'class' => 'btn btn-xs btn-success btn-block',
                                                        'data-method' => 'post',
                                                        'data-confirm' => Yii::t('urights', 'Are you sure you want to unblock this user?'),
                                            ]);
                                        } else {
                                            return Html::a(Yii::t('urights', 'Block'), ['block', 'id' => $model->user_id], [
                                                        'class' => 'btn btn-xs btn-danger btn-block',
                                                        'data-method' => 'post',
                                                        'data-confirm' => Yii::t('urights', 'Are you sure you want to block this user?'),
                                            ]);
                                        }
                                    },
                                            'format' => 'raw',
                                        ],                                    
                
                [
                    'class' => 'yii\grid\ActionColumn',
                    'template' => '{update} {delete}',
                ],
                ],
            ]);
        ?>                
    </div>
</div>        
<?php Pjax::end() ?>

如图所示,当我单击“确认”(绿色按钮)时,它显示禁用该按钮并将其变为已确认。然后将is_confimred设置为0(零)。

此外,如果我单击“阻止”(红色按钮),则应将按钮标题更改为“取消阻止”,并将is_block设置为0。

但是,我没有得到结果,但是下面显示了页面:

Error

我该如何解决?

1 个答案:

答案 0 :(得分:0)

您应该为控制器添加用于确认和阻止的切换功能。

public function actionConfirm($id)
{
    if(($model = User::findOne($id)) !== null) {
        $model->is_confirmed = $model->is_confirmed ? false : true;
        $model->update();
    }

    return $this->redirect(['index']);
}

public function actionBlock($id)
{
    if(($model = User::findOne($id)) !== null) {
        $model->is_block = $model->is_block ? false : true;
        $model->update();
    }

    return $this->redirect(['index']);
}