Yii2文件验证将enableAjaxValidation设置为true后错误无效

时间:2016-04-14 02:29:04

标签: yii2 yii2-advanced-app yii2-basic-app

以前,当我在ActiveForm上将enableAjaxValidation设置为false时,文件验证工作得很好,但是在我将enabledAjaxValidation设置为true以检查唯一的slug后,它不起作用。 这就是我所做的

Form:
<?php $form = ActiveForm::begin(['options' => ['enctype' => 'multipart/form-data'] , 'enableAjaxValidation' => true,'id' => 'article-form']); ?>

 Model rule:
[['slug'], 'unique'],
[['featureFile' , 'bannerFile'], 'file', 'skipOnEmpty' => false, 'extensions' => 'png, jpg' , 'on' => 'create'],

控制器:

use yii\web\Response; //Ajax Validation
use yii\widgets\ActiveForm; //Ajax Validation

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

即使我已经选择了图像文件,但它仍然显示验证错误 enter image description here

请帮助!!!

1 个答案:

答案 0 :(得分:2)

您可以禁用指定字段的ajax验证。

尝试

<?= $form->field($model, 'featureFile', ['enableAjaxValidation' => false])->fileInput() ?>