所以我到达了Ajax验证部分。首先,我想说我读了类似问题的答案,但它没有帮助我。 在注册表单上验证工作正常(当我尝试使用现有名称注册用户时它向我显示错误消息),但是当我在用户配置文件中并尝试用现有名称更新他的名字时没有任何事情发生(没有显示错误)。
我的模型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,
]);
}
}
将欣赏每一条建议!
答案 0 :(得分:0)
在你的机器中配置yii_logger db(你可以找到Yii2文档)。
然后运行
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;
如果您的代码在某个地方出现故障,您可能会看到错误回溯。