简单地说,我想做的是检查数据库中特定输入exists
的值,但我希望仅当另一个输入是exists
规则时才应用type
规则也具有特定价值。
例如,假设我的表单中包含名为id
的选择和名为<select name="type">
<option value="0">Type0</option>
<option value="1">Type1</option>
</select>
<input type="text" name="id">
的文本字段。
type
如果1
存在且等于id
,我想检查数据库表exists
中的users
输入exists
,否则{ {1}}规则根本不应用,而其他验证规则将正常应用。
修改
最好,我想使用表单请求进行验证。可以使用表单请求来实现吗?
答案 0 :(得分:1)
您可以conditionally添加规则:
$v = Validator::make(...);
$v->sometimes('id', 'exists:table,column', function($input) {
return $input->get('type') == 1;
});
<强>更新强>
对于form request
,您可以这样做:
$rules = [
...,
];
if ($this->get('type') == 1){
if (isset($rules['id'])){
$rules['id'] .= '|exists:table,column';
}
else {
$rules['id'] = 'exists:table,column';
}
}
return $rules;