Php 电子邮件唯一验证程序yii2不';t返回消息验证

Php 电子邮件唯一验证程序yii2不';t返回消息验证,php,yii2-advanced-app,yii-validation,Php,Yii2 Advanced App,Yii Validation,我尝试在我的模型中使用电子邮件的唯一验证器,但它不起作用。。我的意思是,当用户输入已经保存在db中的同一封电子邮件时,即使数据没有保存在db中,用户仍然可以单击“提交”按钮(并重新加载页面),表单中也不会显示任何通知。我的代码怎么了 这是我的模型验证: ['email', 'trim'], ['email', 'required'], ['email', 'email'], ['email', 'string', 'max' => 255], ['email', 'unique', 'ta

我尝试在我的模型中使用电子邮件的唯一验证器,但它不起作用。。我的意思是,当用户输入已经保存在db中的同一封电子邮件时,即使数据没有保存在db中,用户仍然可以单击“提交”按钮(并重新加载页面),表单中也不会显示任何通知。我的代码怎么了

这是我的模型验证:

['email', 'trim'],
['email', 'required'],
['email', 'email'],
['email', 'string', 'max' => 255],
['email', 'unique', 'targetClass' => '\application\common\models\User', 'message' => 'This email address has been taken.'],
这是我的表格:

<?php $form = ActiveForm::begin(['id' => 'form-signup']); ?>

<?= $form->field($model,'email')->textInput()->input('email', ['placeholder' => "Email"])->label(false) ?>

...

<div class="form-group">
<?= Html::submitButton('SIGN UP NOW', ['class' => 'btn btn-sign', 'type' => 'submit']) ?>
</div>

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

您应该在模型验证中添加一个过滤器

['email', 'filter', 'filter' => 'trim'],
['email', 'required'],
['email', 'email'],
['email', 'unique',
          'targetClass' => '\common\models\User',
           'message' => Yii::t('frontend', 'This email address has already been taken.')
        ],
['email', 'filter', 'filter' => 'trim'],
['email', 'required'],
['email', 'email'],
['email', 'unique',
          'targetClass' => '\common\models\User',
           'message' => Yii::t('frontend', 'This email address has already been taken.')
        ],