Laravel验证不是必需的,但仍然会回来,就好像它是必需的

时间:2018-03-09 18:39:12

标签: laravel validation

laravel验证规则存在一些细微问题。即我已经设置了一个字段名为'url'的表单。此网址必须是网址,但不是必需的。

所以我有:

07-Mar-2018 21:16:46.084 INFO [http-nio-8080-exec-120] org.apache.catalina.startup.HostConfig.deployWAR Deployment of web application archive /var/lib/tomcat8/webapps/myWebApp.war has finished in 118,532 ms
07-Mar-2018 21:16:56.355 INFO [http-nio-8080-exec-123] org.apache.catalina.startup.HostConfig.undeploy Undeploying context [/myWebApp]

在验证规则中,但仍然提交该URL是无效格式。但是我没有把它填满,这不是必需的。

这里有点困惑,我应该注意什么?

2 个答案:

答案 0 :(得分:3)

https://laravel.com/docs/5.6/validation#a-note-on-optional-fields

  

默认情况下,Laravel在应用程序的全局中间件堆栈中包含TrimStringsConvertEmptyStringsToNull中间件。这些中间件由App\Http\Kernel class列在堆栈中。因此,您经常需要标记您的"可选"如果您不希望验证程序将空值视为无效,请求字段为可为空。

因此,此验证规则将起到作用:

'url' => ['nullable', 'url']

答案 1 :(得分:-1)

为此,我通常在最开始使用nullable

'url' => 'nullable|url',