![](/img/trans.png)
[英]Laravel validation rule for either of two fields required but both should not be present
[英]Laravel Validation: One required input that can come from either of two fields
所以我有upload_media
和url
。 upload_media
是您必須上載.pdf文件的地方,如果需要url
則必須上載URL。
所以我想要的是,如果upload_media
不為空,則不需要url
。 如果用戶決定使用url
,則不需要upload_media
。 但是,如果它們中的任何一個都沒有值,那么它應該返回所需的錯誤。
這是我的驗證:
$this->validate($request, [
'title' => 'required',
'viewing_time' => 'required',
'tags' => '',
'description' => '',
'organization' => '',
'upload_media' => '',
'url' => '',
'upload_preview' => 'required|file|image'
]);
您可以使用required_without
規則: https : //laravel.com/docs/5.6/validation#rule-required-without
$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'
]);
$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);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.