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',
]);