2016-05-07 16 views
1

私はいくつかのリンクは、Yii2のユニークな検証はAjaxの検証のみであると言います(しかし、私はそれに従うのがベストプラクティスではありません)。 Yii2yii2ユニークな検証(ノンajax)が動作しない

で私のモデル規則は

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

私のコントローラの機能は、通常のactionCreateされている()

誰もがこのためのソリューションを持っていますか?事前のおかげで

編集:アヤックス ok.Iがなかったため、私のコントローラのコードは今

$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 
     ]); 
    }` 

ですが、ページにはリダイレクトし、空白のページが表示されます。

+0

togheterの両方をチェックしなければならないだろう。私はあなたを案内します。 –

+0

ok.I、私のコントローラコードは今:私の質問の編集を参照してください。ありがとう! :) – Jackhad

+0

Concectually、どのようにして一意性チェックにfunction_idを使用していますか? – scaisEdge

答えて

0

あなたはAjaxの検証でそれを行う

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


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

ありがとうございました!うまく動作しますが、なぜ非アヤックスのアクションに利用できないのですか? – Jackhad

+0

検証作業は空白ページにリダイレクトされます。:( – Jackhad

+0

...検証中またはコミット後の検証後)? – scaisEdge

関連する問題