我在 Laravel 10 中进行了验证,其中包含对 company_description 的验证。我希望当其他两个字段具有指定值时需要它。我得到了这个代码:
'company_description' => [
'string',
'nullable',
function ($attribute, $value, $fail) {
if (request()->input('offer_type_id') == 1 && request()->input('use_default_company_description') == false) {
if (empty($value) || $value == '') {
$fail('Company description is required.');
}
}
},
],
但它不起作用。如果 nullable 被删除,它的工作,但我需要这个字段是 nullable。我做错了什么?
使用
withValidator
和 sometimes
有条件地添加 required
规则。
company_description' => ['string']
public function withValidator($validator) {
$validator->sometimes('company_description', 'required', function ($input) {
return $input->offer_type_id == 1 && $input->use_default_company_description == false;
});
}