簡體   English   中英

Laravel驗證:一個必需的輸入可以來自兩個字段中的任何一個

[英]Laravel Validation: One required input that can come from either of two fields

所以我有upload_mediaurl 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM