有没有办法在验证发生之前修改表单请求类中的输入字段?Laravel 5.1在表单请求验证之前修改输入
我想修改一些输入日期字段如下,但它似乎并没有工作。
当我设置$this->start_dt
输入字段为2016-02-06 12:00:00
和$this->end_dt
到2016-02-06 13:00:00
我仍然收到验证错误“end_dt必须在start_dt之后”。这意味着当您在rules()
函数内更新$this->start_dt
和$this->end_dt
时,输入请求值不会发生变化。
public function rules()
{
if ($this->start_dt){
$this->start_dt = Carbon::createFromFormat('d M Y H:i:s', $this->start_dt . ' ' . $this->start_hr . ':'. $this->start_min . ':00');
}
if ($this->end_dt){
$this->end_dt = Carbon::createFromFormat('d M Y H:i:s', $this->end_dt . ' ' . $this->end_hr . ':'. $this->end_min . ':00');
}
return [
'start_dt' => 'required|date|after:yesterday',
'end_dt' => 'required|date|after:start_dt|before:' . Carbon::parse($this->start_dt)->addDays(30)
];
}
注:start_dt
和end_dt
的日期选择器字段和start_hr
,start_min
是下拉领域。因此,我需要通过组合所有字段来创建日期时间,以便我可以进行比较。
这个荣誉。确认在L5.4上工作。 Upped +1 –
为我工作,非常感谢! – FabulousCo
这是记录在任何地方吗?否则,它可能会像以前的其他解决方案一样,在一个小版本升级中悄然破碎 – Enkay