Laravel: 如何让一个字段只有在另一个特定字段存在时才需要?
Laravel: How to make a field required only if another specific field exists?
我有一个表格要求提供多个文件以及这些文件的描述。像
<input type="file" name="file1">
Describe your file:
<input type="text" name="desc1">
我希望用户描述文件的内容,而不是只显示类似 Invoices-final-FinalV30.docx
他可能会说 "Invoices for January, 2018",所以当我验证表单时,我知道如何询问是否一个字段遵循正则表达式,或者如果该字段是必需的等等,则使用 validate() 方法,但我想要一些自定义的东西,只有在有 "file1" 的情况下才需要 "desc1" 的东西,如果有不 "file1" 我可以安全地忽略任何 "desc1" 携带的东西。
尝试required_with:anotherfield验证
https://laravel.com/docs/5.7/validation
$validator = Validator::make(
$request->all(),
[
'file1' => 'mimes:jpeg,bmp,png', //your file validation
'desc1' => 'bail|required_with:file1' //add other description validations
]
);
对于数组字段,示例名为 upload[][file]
, upload[][desc]
$validator = Validator::make($request->all(), [
'upload.*.file' => 'mimes:jpeg,bmp,png',
'upload.*.desc' => 'bail|required_with:upload.*.file',
]);
我有一个表格要求提供多个文件以及这些文件的描述。像
<input type="file" name="file1">
Describe your file:
<input type="text" name="desc1">
我希望用户描述文件的内容,而不是只显示类似 Invoices-final-FinalV30.docx
他可能会说 "Invoices for January, 2018",所以当我验证表单时,我知道如何询问是否一个字段遵循正则表达式,或者如果该字段是必需的等等,则使用 validate() 方法,但我想要一些自定义的东西,只有在有 "file1" 的情况下才需要 "desc1" 的东西,如果有不 "file1" 我可以安全地忽略任何 "desc1" 携带的东西。
尝试required_with:anotherfield验证
https://laravel.com/docs/5.7/validation
$validator = Validator::make(
$request->all(),
[
'file1' => 'mimes:jpeg,bmp,png', //your file validation
'desc1' => 'bail|required_with:file1' //add other description validations
]
);
对于数组字段,示例名为 upload[][file]
, upload[][desc]
$validator = Validator::make($request->all(), [
'upload.*.file' => 'mimes:jpeg,bmp,png',
'upload.*.desc' => 'bail|required_with:upload.*.file',
]);