开始以前,为方便查看结果,在/Exceptions/Handler.php
文件捕获了异常
那么咱们开始作一个验证吧:php
request
并注入到须要验证控制器的方法return true
由于咱们身份验证通常不在这里验证end_date
能够很简单的经过start_date
来限制时间范围,那么start_date
该怎么验证呢?我原本想的是这样的。curr_date
,而后start_date
经过这个字段限制范围。测试发现实际并不生效。直接进入了控制器打印的数据Illuminate\Validation\Concerns、ValidatesAttributes::validateAfterOrEqual
方法跳到compareDates
方法,并尝试打印了$this->getValue($parameters[0])
这时候的$paramters[0]
为curr_date
老是null
prepareForValidation
方法,以后再测试Laravel
的IoC
容器config/app.php
里有关表单验证的服务提供者ValidatesWhenResolved
对象的类在解析以后会自动调用validate
方法IndexTicketRequest
类,没有这个方法,去到父类,发现实现了ValidatesWhenResolved
,而validate
是在trait
的ValidatesWhenResolvedTrait
validate
方法里分三步主要的$this->prepareForValidation()
在验证以前的准备curr_date
,咱们来看看新建验证明例便知道答案$this->validationData()
方法拿到request
的数据,而后再经过$this->container->call([$this, 'rules'])
拿到验证规则,因此咱们在rules
方法写的天然不生效了,以后的验证便没法继续进行