Laravel 验证 - 仅当两个条件都为真时才需要
Laravel validation - required only when two conditions are true
我希望purchaser_first_name和purchaser_last_name只有在请求为真,经过身份验证的输入值为假。
到目前为止我尝试过的:
public function rules()
{
return [
'gift' => 'required',
'authenticated'=>required,
'purchaser_first_name' => 'required_if:gift,true,required_if:authenticated,false',
'purchaser_last_name' => 'required_if:gift,true,required_if:authenticated,false',
];
}
这种方法原来使用 OR 运算符而不是我想要 AND 运算符。
尝试如下更改您的验证码:
return [
'gift' => 'required',
'authenticated'=>'required',
'purchaser_first_name' => 'required_if:gift,true|required_if:authenticated,false',
'purchaser_last_name' => 'required_if:gift,true|required_if:authenticated,false',
];
你可以这样试试:
'purchaser_first_name' => Rule::requiredIf(function () use ($request) {
return $request->input('gift') && !$request->input('authenticated');
}),
在函数中,您可以设置您的逻辑。我不确定你真正需要什么,但它是一个很好的开始。
此外,请查看 docs 了解更多相关信息。
我希望purchaser_first_name和purchaser_last_name只有在请求为真,经过身份验证的输入值为假。
到目前为止我尝试过的:
public function rules()
{
return [
'gift' => 'required',
'authenticated'=>required,
'purchaser_first_name' => 'required_if:gift,true,required_if:authenticated,false',
'purchaser_last_name' => 'required_if:gift,true,required_if:authenticated,false',
];
}
这种方法原来使用 OR 运算符而不是我想要 AND 运算符。
尝试如下更改您的验证码:
return [
'gift' => 'required',
'authenticated'=>'required',
'purchaser_first_name' => 'required_if:gift,true|required_if:authenticated,false',
'purchaser_last_name' => 'required_if:gift,true|required_if:authenticated,false',
];
你可以这样试试:
'purchaser_first_name' => Rule::requiredIf(function () use ($request) {
return $request->input('gift') && !$request->input('authenticated');
}),
在函数中,您可以设置您的逻辑。我不确定你真正需要什么,但它是一个很好的开始。
此外,请查看 docs 了解更多相关信息。