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是无效格式。但是我没有把它填满,这不是必需的。
这里有点困惑,我应该注意什么?
答案 0 :(得分:3)
https://laravel.com/docs/5.6/validation#a-note-on-optional-fields
默认情况下,Laravel在应用程序的全局中间件堆栈中包含
TrimStrings
和ConvertEmptyStringsToNull
中间件。这些中间件由App\Http\Kernel class
列在堆栈中。因此,您经常需要标记您的"可选"如果您不希望验证程序将空值视为无效,请求字段为可为空。
因此,此验证规则将起到作用:
'url' => ['nullable', 'url']
答案 1 :(得分:-1)
为此,我通常在最开始使用nullable
'url' => 'nullable|url',