Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 更新用户信息yii2时需要Ajax验证_Php_Ajax_Yii2 - Fatal编程技术网

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

Php 更新用户信息yii2时需要Ajax验证,php,ajax,yii2,Php,Ajax,Yii2,所以我谈到了Ajax验证部分。首先,我想说,我读了类似问题的答案,但这对我没有帮助。 在注册表上验证工作正常(当我尝试使用现有名称注册用户时,会显示错误消息),但当我在用户配置文件中并尝试使用现有名称更新其名称时,不会发生任何事情(不会显示错误) My model UpdateForm.php规则: public function rules() { return [ [['email', 'password', 'username'], 'req

所以我谈到了Ajax验证部分。首先,我想说,我读了类似问题的答案,但这对我没有帮助。 在注册表上验证工作正常(当我尝试使用现有名称注册用户时,会显示错误消息),但当我在用户配置文件中并尝试使用现有名称更新其名称时,不会发生任何事情(不会显示错误)

My model UpdateForm.php规则:

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

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;

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

在您的计算机中配置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;

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

您使用相同的模型和表单创建和更新谢谢!我看了一下我的actionRegister,现在明白了:)您使用相同的模型和表单来创建和更新OK you!我看了一下我的actionRegister,现在明白了:)