我有一个开始日期和结束日期,格式...
在我的方法rules
中,我有这个:
public function rules()
{
return [
//
'date_revision_start' => 'after:2009-01-01|before:2023-01-01',
'date_revision_end' => 'after:2009-01-01|before:2023-01-01'
];
}
结束日期不能早于开始日期。我应该在哪里做条件? 在控制器中?
if ($this->request->get('date_revision_start') < $this->request->get('date_revision_end'))
{
return redirect()->route('revisions.index')
->with('error', 'The end date cannot be before the start date!');
}
答案 0 :(得分:3)
如果您正在使用验证,则无需检查条件
public function rules()
{
return [
//
'date_revision_start' => 'after:2009-01-01|before:2023-01-01',
'date_revision_end' => 'after:date_revision_start|before:2023-01-01'
];
}
答案 1 :(得分:1)
您可以使用Carbon并执行以下操作:
if (Carbon::parse($request->get('date_revision_start')->greaterThan(Carbon::parse($this->request->get('date_revision_end')))) {
return redirect()->route('revisions.index')
->with('error', 'The end date cannot be before the start date!');
}
如果您这样使用,则可以在控制器启动时执行此操作。
或者您可以使用验证:
public function rules() {
return [
'date_revision_end' => 'date|after:date_revision_start|before:2023-01-01'
];
}
答案 2 :(得分:0)
您应该尝试以下操作:
public function rules()
{
return [
//
'date_revision_start' => 'after:2009-01-01|before_or_equal:2023-01-01',
'date_revision_end' => 'after:2009-01-01|after_or_equal:2023-01-01'
];
}