提问人:SoulArcangel 提问时间:10/10/2023 更新时间:10/10/2023 访问量:40
Laravel,如何仅在前一个规则为真时执行规则
Laravel, how to execute a rule only if the previous one is true
问:
如何仅当前一个规则为真时才执行该规则? 例如:
$input = request()->get('data');
$rules = [
"id_country" => "required",
"fiscalcode" => "required_if:id_country,128|fiscalcode",
]
$validator = Validator::make($input, $rules, $messages);
现在的问题是“fiscalcode”规则总是被验证的,相反,我希望它只有在前一个规则(required_if:id_country,128)为真时才被验证。 我怎样才能在一次检查中做到这一点?
答:
0赞
SoulArcangel
10/10/2023
#1
我是这样解决的......
"fiscalcode" => ["required_if:id_country,128",Rule::when((int)$input['id_country'] == 128,"fiscalcode")],
评论
"fiscalcode" => "required_if:id_country,==,128"
'bail|required_if:id_country,128|fiscalcode