更新用户信息 yii2 时需要 Ajax 验证



所以我到了Ajax验证部分。首先,我想说我阅读了类似问题的答案,但它对我没有帮助。在注册表验证上效果很好(当我尝试使用现有名称注册用户时,它向我显示错误消息(,但是当我在用户配置文件中并尝试使用现有名称更新他的名称时,没有任何反应(未显示错误(。

我的模型更新表单.php规则:

public function rules()
    {
        return [
            [['email', 'password', 'username'], 'required'],
            [['email', 'password', 'username'], 'string', 'max' => 50],
            [['image'], 'string', 'max' => 255],
            ['email', 'email'],
            [[ 'email', 'username'], 'unique'],
        ];
    }

我的用户控制器操作:

public function actionUpdate()
    {
        $id = Yii::$app->user->identity->id;
        $model = $this->findModel($id);
        if (Yii::$app->request->isAjax && $model->load(Yii::$app->request->post())) {
            Yii::$app->response->format = Response::FORMAT_JSON;
            return ActiveForm::validate($model);
        }
        if ($model->load(Yii::$app->request->post()) && $model->save()) {
            return $this->redirect(['view', 'id' => $model->id]);
        } else {
            return $this->render('update', [
                'model' => $model,
            ]);
        }
    }

将不胜感激每一个建议!

在你的

机器中配置yii_logger db(你可以找到它 Yii2 docs(。

然后运行

SELECT FROM_UNIXTIME(log_time, '%Y-%m-%d') log_date, y.*  FROM yii_logger y where level = 1 order by log_time desc limit 20;

如果您的代码在某处中断,您可能会看到错误回溯。

最新更新