我是 Laravel 新手,正在使用 Laravel 6.x。我需要编写一个验证,查看用户在表单上提供的日期(通过 JQuery 日期选择器),以确保用户选择的日期是当前日期或之前的日期。我无法弄清楚如何在表达式中不使用撇号的情况下表达当前日期,这会扰乱 Laravel 正确理解验证。
例如,如果我写:
'sleep_date' => ['required', 'before-or-equal-date: Date(Y-m-d)']
Run Code Online (Sandbox Code Playgroud)
这是行不通的,因为 Date 函数的参数周围没有撇号。但是如果我像这个例子一样添加撇号,Laravel 会说存在语法错误:
'sleep_date' => ['required', 'before-or-equal-date: Date('Y-m-d')']
Run Code Online (Sandbox Code Playgroud)
我该如何编码才能使其按预期工作?
您可以用点连接当前日期:
'sleep_date' => ['required', 'before_or_equal:' . Date('Y-m-d')]
Run Code Online (Sandbox Code Playgroud)
您也可以以相同的方式使用 laravelnow()助手:Date()
'sleep_date' => ['required', 'before_or_equal:' . now()->format('Y-m-d')]
Run Code Online (Sandbox Code Playgroud)