Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
验证Yii2中数据库的唯一值_Yii2 - Fatal编程技术网

验证Yii2中数据库的唯一值

验证Yii2中数据库的唯一值,yii2,Yii2,我正在尝试验证电子邮件值是否为唯一值。像这样做 [['HRMS_candidateEmail'],'unique'], 但它不工作,插入语句使用yii\validators\UniqueValidator,如下所示 模型 我假设您的观点是register.php。所以 register.php(视图) 1) 删除使用yii\bootstrap\ActiveForm(如果存在) 2) 添加使用yii\widgets\ActiveForm use yii\web\Response; use yii

我正在尝试验证电子邮件值是否为唯一值。像这样做

[['HRMS_candidateEmail'],'unique'],
但它不工作,插入语句
使用yii\validators\UniqueValidator,如下所示

模型


我假设您的观点是
register.php
。所以

register.php(视图)

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

2) 添加
使用yii\widgets\ActiveForm

use yii\web\Response;
use yii\widgets\ActiveForm;

    .
    .
    .
  public function actionRegister() {

         $model = new Candidate();

         //Add This For Ajax Email Exist Validation 
         if(Yii::$app->request->isAjax && $model->load(Yii::$app->request->post())){
           Yii::$app->response->format = Response::FORMAT_JSON;
           return ActiveForm::validate($model);
         } 

         else if ($model->load(Yii::$app->request->post())) {
            .
            // Your code
            .
            .
         }
  }
3) 在该字段中添加
'enableAjaxValidation'=>true
(验证它的位置,如下所示)


关于“不工作”部分,请再具体一点。有错误吗?@tarleb没有错误,它接受之前插入的值。表单中的其他验证是否按预期工作?确保数据库中有
候选人电子邮件的
唯一索引。@NanaPartykar完成:Jai Maharashtra。
<?= $form->field($model, 'HRMS_candidateEmail')->textInput(['maxlength' => true,'class'=>'form-control input-sm','placeholder'=>'Enter email of candidate']) ?>
<?= $form->field($model, 'HRMS_candidateEmail',['enableAjaxValidation' => true])->textInput(['maxlength' => true,'class'=>'form-control input-sm','placeholder'=>'Enter email of candidate']) ?>
use yii\web\Response;
use yii\widgets\ActiveForm;

    .
    .
    .
  public function actionRegister() {

         $model = new Candidate();

         //Add This For Ajax Email Exist Validation 
         if(Yii::$app->request->isAjax && $model->load(Yii::$app->request->post())){
           Yii::$app->response->format = Response::FORMAT_JSON;
           return ActiveForm::validate($model);
         } 

         else if ($model->load(Yii::$app->request->post())) {
            .
            // Your code
            .
            .
         }
  }