【发布时间】:2016-05-16 17:58:12
【问题描述】:
有没有办法在验证发生之前修改表单请求类中的输入字段?
我想修改一些输入日期字段如下,但它似乎不起作用。
当我将$this->start_dt 输入字段设置为2016-02-06 12:00:00 并将$this->end_dt 设置为2016-02-06 13:00:00 时,我仍然收到验证错误“end_dt must be after 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 是下拉字段。因此,我需要通过组合所有字段来创建日期时间,以便进行比较。
【问题讨论】:
标签: php validation laravel-5 laravel-5.1