Php 电子邮件唯一验证程序yii2不';t返回消息验证
我尝试在我的模型中使用电子邮件的唯一验证器,但它不起作用。。我的意思是,当用户输入已经保存在db中的同一封电子邮件时,即使数据没有保存在db中,用户仍然可以单击“提交”按钮(并重新加载页面),表单中也不会显示任何通知。我的代码怎么了 这是我的模型验证: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
['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.')
],