2017-04-30 5 views
0

私は自分のテーブル "candidate_knowledges"にバリデーションを作成する必要がありますが、このテーブルでは基本的にカラム(candidate_id、software_id)を受け取ります。しかし、私の検証は間違っていると思います。 妥当性検査で何を言おうとしているのは、テーブルに1つのsoftware_idと1つのcandidate_idしか存在できないということです。この方法では、候補者は重複したエントリを持っていません。2つの列の間でユニークです

ここ
Ex: 'software_id'   => 'required|integer|unique:candidate_knowledges,candidate_id,'.$candidate->id, 

答えて

0

各候補者のための唯一のソフトウェアできるようにする方法です。(それは試合より簡単に使用して更新するために)私は流暢な検証構文を使用することをお勧めし一般に

$rules = [ 
    'software_id' => 
     'required', 
     'integer', 
     'min:1', 
     Rule::unique('candidate_knowledges')->where('candidate_id', $candidate->id), 
    ], 
]; 

をしていますが、できれば't(laravel < 5.3またはその他の理由):

'software_id' => 'required|integer|unique:candidate_knowledges,NULL,NULL,candidate_id,' . $candidate->id, 

希望します。

関連する問題