如何验证可以是数字或Url的字段或要在laravel中上传的文件

时间:2017-02-15 07:38:10

标签: php laravel validation laravel-5.3

我有一个来自表单的名为Photo的字段。

首先,该字段必须required才能发送,然后可以是数字编号或网址或新上传的照片文件

我知道如何使用laravel validation rules来检查数字的位置。像这样:

'photo' => 'required|digit'

但我不知道如何查看照片是数字 网址还是上传文件

当然,如果我这样写:

'photo' => 'required|digit|url|file'

在这种情况下,如果照片是一个数字并且不是网址,则laravel会给我错误。

任何人都可以帮我解决这个问题吗?

1 个答案:

答案 0 :(得分:3)

你可以这样做:

应用/ HTTP /请求/ FormRequest.php

public function rules()
{
   if(is_numeric($this->photo)) {
      $validation = 'digit';
   } else if (!filter_var($this->photo, FILTER_VALIDATE_URL) === false) {
      $validation = 'url';
   } else {
      $validation = 'file';
   }

 return [
      'photo' => 'required|' . $validation
    ];
 }

注意:未经测试,但它应该为您提供基本想法。