yii2唯一验证(非ajax)无法正常工作

时间:2016-05-07 07:13:15

标签: validation yii2 unique

我看到一些链接说Yii2唯一验证仅适用于Ajax验证(但我没有找到任何最佳实践。)。所以我要求在Yii2中进行非ajax验证

我的模型规则是

['name', 'unique', 'targetAttribute' => 'function_id','message' => 'name must be unique.'],

我的控制器功能是正常的actionCreate()

有人有解决方案吗?在此先感谢

编辑:对于Ajax 好的我没有,我的控制器代码现在是

    $model = new JobFunctionRole();
    $model->scenario = 'insert';

    $jobFunction=JobFunction::find()->all();
    if(Yii::$app->request->post()){
        if (Yii::$app->request->isAjax && $model->load(Yii::$app->request->post())) {
            Yii::$app->response->format = Response::FORMAT_JSON;
            return ActiveForm::validate($model);
        }
        if ($model->save()) {
            return $this->redirect(['view', 'id' => $model->job_function_role_id]);
        }
    } else {
        return $this->render('create', [
            'model' => $model,'jobFunction'=>$jobFunction
        ]);
    }`

但页面重定向并显示空白页。

1 个答案:

答案 0 :(得分:0)

可能你必须检查两个togheter

 ['a1', 'unique', 'targetAttribute' => ['a1', 'a2']]


[
     'name', 'unique', 
     'targetAttribute' => ['name','function_id'],
      'message' => 'name must be unique.'
],