检查 date_start 和 date_end

Checking date_start and date_end

我在表格中有开始日期和结束日期...

在我的方法中 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'
             ];
    }

结束日期不能早于开始日期date.Where我应该设置条件吗? 在控制器中?

    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!');
    }

如果您使用验证,则无需检查条件

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'
    ];
}

您可以使用 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'
         ];
    }

你应该试试这个:

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'
         ];
}