有没有一种方法可以在验证之前修改表单请求类中的输入字段?
我想按以下方式修改一些输入日期字段,但似乎不起作用。
当我将$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时,输入请求值没有被更改。
我想按以下方式修改一些输入日期字段,但似乎不起作用。
当我将$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
是下拉菜单字段。因此,我需要将所有字段组合起来创建一个日期时间,以便进行比较。