Yii2 ActiveForm唯一验证未显示错误消息

Yii2 ActiveForm唯一验证未显示错误消息,yii2,Yii2,这是我的模型联系人 public function rules() { return [ [['fname', 'status','mobile',], 'required'], [['user_id', 'contact_type','group_type','passport_no','trip_id','group_id','state',], 'integer'], [['fname', 'mname', 'lname', 'sta

这是我的模型联系人

public function rules()
{
    return [
        [['fname', 'status','mobile',], 'required'],
        [['user_id', 'contact_type','group_type','passport_no','trip_id','group_id','state',], 'integer'],
        [['fname', 'mname', 'lname', 'status', 'street', 'location', 'post', 'city', 'district','email','job_title','company_name','source'], 'string', 'max' => 500],
        [['department'], 'string', 'max' => 40],
        [['pincode'], 'string', 'max' => 15],
        [['mobile'],'unique'],
此处所需的
mobile
验证工作并显示错误消息,但unique规则工作但不显示任何错误消息


请帮帮我。

也许您还应该设置
targetClass

['email', 'unique', 'targetClass' => '\common\models\User']
1) 唯一的数据库验证工作。
2) 表单提交后,检查验证,由于唯一验证失败,模型未保存。
3) 如果您想在表单上进行唯一的验证,请使用Ajax

为此,您需要设置
'enableAjaxValidation'=>true

$form = ActiveForm::begin([
    'id' => 'contact-form',
     'enableAjaxValidation' => true,
]);
控制器:

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

我假设您的查看页面为
register.php
。所以

register.php(视图)

1) 删除
使用yii\bootstrap\ActiveForm(如果存在)

2) 添加
使用yii\widgets\ActiveForm

3) 在该字段中添加
'enableAjaxValidation'=>true
(验证它的位置,如下所示)

型号

[['mobile'],'unique','message'=>'Mobile No Already Exist'],

供参考-单击

我的模型中的此规则适用于我:

['email', 'required'],
['email', 'email'],
['email', 'unique', 'targetClass' => '\app\models\Student', 'message' => 'This email address has already been taken.'],

你能显示你正在使用的表单吗?请正确设置代码格式。使用4个空格缩进或``引号
[['mobile'],'unique','message'=>'Mobile No Already Exist'],
if ($model->validate()) {
    //SAVE YOUR DATA
} else {
    // HERE YOU CAN PRINT THE ERRORS OF MODEL
    $data = $model->getErrors();
    Yii::$app->session->setFlash('message', $data['password'][0]);// its dislplays error msg on your form
}
['email', 'required'],
['email', 'email'],
['email', 'unique', 'targetClass' => '\app\models\Student', 'message' => 'This email address has already been taken.'],