Php Yii2 ajax验证不起作用

Php Yii2 ajax验证不起作用,php,ajax,forms,validation,yii2,Php,Ajax,Forms,Validation,Yii2,我试图验证我的YII2登记表,但它不起作用。鉴于: $form = ActiveForm::begin([ 'id' => 'register', 'options' => ['accept-charset'=>'utf-8'], 'validateOnChange' => false, 'enableAjaxValidation' => true, 'va

我试图验证我的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',
               ]
           ];
}
有人能告诉我我做错了什么吗

return ActiveForm::validate($model)

ActiveForm::validate($model)
是一个数组,它需要以json形式表示,由json_encode和
\Yii::$app->end()
完成;正在确保应用程序仅在检查时停止。还要确保命名空间后面有:

use yii\web\Response;
use yii\widgets\ActiveForm;

但是通过这样做,通过ajax提交表单将无法正常工作。最好的方法是使用validationUrl

Show
com\modules\admin\models\MUser
model如果出现AJAX请求,您是否根据控制器准备好返回正确响应?显示控制器代码。尝试“enableClientValidation”=>falseMuser模型:公共函数规则(){return[['username'、'unique'、'targetClass'=>'com\modules\admin\models\MUser'、'message'=>'username exist')];}我认为它不起作用,因为($model->load(Yii::$app->->request->post())&&Yii::$app->request->isAjax){$model->refresh();Yii::$app->response->format='json';返回ActiveForm::validate($model);}当我删除此代码时,它正确注册了用户表单,但没有检查username unique,很抱歉我的英语不好
use yii\web\Response;
use yii\widgets\ActiveForm;