【发布时间】:2015-06-14 16:05:31
【问题描述】:
我试图验证我的 YII2 注册表,但它不起作用。观点:
$form = ActiveForm::begin([
'id' => 'register',
'options' => ['accept-charset'=>'utf-8'],
'validateOnChange' => false,
'enableAjaxValidation' => true,
'validateOnSubmit' => true,
])
在控制器中:
$model = new MUser();
if($model->load(Yii::$app->request->post()) && Yii::$app->request->isAjax)
{
$model->refresh();
Yii::$app->response->format = 'json';
return ActiveForm::validate($model);
}
elseif($model->load(Yii::$app->request->post()) && $model->save())
{
\\do something
}
在模型中:
public function rules()
{
return [
[
'username',
'unique',
'targetClass' => 'com\modules\admin\models\MUser',
'message' => 'Username exist',
]
];
}
谁能告诉我我做错了什么?
【问题讨论】:
-
显示
com\modules\admin\models\MUser模型 -
您是否准备好相应的控制器以在 AJAX 请求的情况下返回正确的响应?显示控制器代码。
-
尝试'enableClientValidation'=> false
-
Muser 模型:public function rules() { return [ ['username', 'unique', 'targetClass'=>'com\modules\admin\models\MUser', 'message'=> '用户名存在')] ]; }
-
我认为它不起作用,因为 if($model->load(Yii::$app->request->post()) && Yii::$app->request->isAjax) { $模型->刷新(); Yii::$app->response->format = 'json';返回 ActiveForm::validate($model);当我删除此代码时,它注册用户表单工作正常但没有检查用户名唯一,对不起我的英语不好
标签: php ajax forms validation yii2