2列之间的唯一

时间:2017-04-30 17:06:52

标签: laravel laravel-5 laravel-5.2 laravel-5.3

我需要为我的表创建一个验证" candidate_knowledges",基本上在这个表中它接受列(candidate_id,software_id),我不能让create user_id和软件多于一个。但我认为我的验证是错误的,或者我做得不对。 我在验证中试图说的是,在表上只能存在一个software_id和一个candidate_id,这样候选人就不会有重复的条目。

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

1 个答案:

答案 0 :(得分:0)

这是一种只允许每个候选人使用一种软件的方法:

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

一般情况下,我建议使用流畅的验证语法(它的匹配更容易使用和更新),但如果你不能(laravel< 5.3或任何其他原因):

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

希望它有所帮助。