Yii2唯一验证器错误显示未设置为表单字段

时间:2016-09-06 13:07:39

标签: php yii2-advanced-app

我正在使用yii2 RESTapi作为我的模块。我的问题验证工作正常,错误消息msg也在控制台中显示为json格式,但它没有在表单字段中设置。请查看图像以获取更多信息。 。请帮助我...

这是模型

 public function rules()
 {
    return [
        [['username'], 'required'],
        [['username'],'unique'],             

 }

视图:

<?php $form = ActiveForm::begin([
'id' => 'cab-form',   
'enableAjaxValidation' => true,

])
; ?>
<?= $form->field($model, 'username')->textInput(['maxlength' => true]) ?>
<div class="form-group">
    <?= Html::submitButton( 'Create', ['class' => 'btn btn-success','id'=>'submit-btn']) ?>
</div>

<?php ActiveForm::end(); ?>

控制器:

    public function actionCreate(){ 
        $model = new Cab;
        Yii::$app->response->format = \yii\web\Response::FORMAT_JSON;
        $post_data = Yii::$app->request->post();
        $model->load($post_data); 
        $model->save();         
        return $model;
  } 

...谢谢

enter image description here

1 个答案:

答案 0 :(得分:0)

唯一需要AjaxValidation才能工作。如果存在ajax请求,则需要在控制器中进行验证,并返回使用JSON编码的验证。请参阅以下示例:

            if ($model->load(Yii::$app->request->post()) {
                if (Yii::$app->request->isAjax) {
                    Yii::$app->response->format = \yii\web\Response::FORMAT_JSON;
                    return ActiveForm::validate($model);
                }
            }