假设我有以下验证,这是我的验证FormRequest的摘录。我如何声明我的验证使Rule::requiredIf
工作?
public function rules()
{
return [
....
'sections.*.content.*.type' => [
'required',
],
'sections.*.content.*.categories' => [
Rule::requiredIf('sections.*.content.*.type' == 'category'),
'array'
],
'sections.*.content.*.banners' => [
Rule::requiredIf('sections.*.content.*.type' == 'banner'),
'array'
]
];
}
在这种情况下,我建议使用自定义验证来获得更干净的代码,但是如果你想使用Rule::requiredIf
,它可以与闭包一起使用,就像下面的例子一样,以实现你所要求的。
Rule::requiredIf(function () {
return request()->input('sections.*.content.*.type') === 'banner';
})