Php Laravel验证:一个必需的输入,可以来自两个字段中的任何一个
所以我有Php Laravel验证:一个必需的输入,可以来自两个字段中的任何一个,php,laravel-5,Php,Laravel 5,所以我有上传媒体和网址upload\u media是您必须上载.pdf文件的地方,如果您需要url,则必须上载url 所以我想要的是,如果upload\u media不是空的,那么就不需要url。如果用户决定使用url,则不需要上传媒体。但是如果其中任何一个都没有值,那么它应该返回一个必需的错误 以下是我的验证: $this->validate($request, [ 'title' => 'required', 'vi
上传媒体
和网址
upload\u media
是您必须上载.pdf文件的地方,如果您需要url,则必须上载url
所以我想要的是,如果upload\u media
不是空的,那么就不需要url
。如果用户决定使用url
,则不需要上传媒体。但是如果其中任何一个都没有值,那么它应该返回一个必需的错误
以下是我的验证:
$this->validate($request, [
'title' => 'required',
'viewing_time' => 'required',
'tags' => '',
'description' => '',
'organization' => '',
'upload_media' => '',
'url' => '',
'upload_preview' => 'required|file|image'
]);
您可以使用required\u而不使用规则:
$rules = [
'title' => 'required',
'viewing_time' => 'required',
'tags' => '',
'description' => '',
'organization' => '',
'upload_media' => 'required',
'url' => 'required',
'upload_preview' => 'required|file|image'
];
if ($request->file('upload_media')->isValid()) {
$rules['url'] = '';
} elseif (!empty($request->get('url'))) {
$rules['upload_media'] = '';
}
$this->validate($request, $rules);
$this->validate($request, [
'title' => 'required',
'viewing_time' => 'required',
'tags' => '',
'description' => '',
'organization' => '',
'upload_media' => 'required_without:url',
'url' => 'required_without:upload_media',
'upload_preview' => 'required|file|image'
]);