Laravel在今天之前统治......怎么做

Phi*_*hil 14 php laravel

对于这条规则,我收到了一个错误 syntax error, unexpected '.', expecting ')'

public static $rules = array(
    'first_name' => 'required|alpha-dash',
    'last_name' => ' required|alpha-dash',
    'media_release' => 'required|boolean',
    'birthday' => 'before:' . date('Y-m-d')

);
Run Code Online (Sandbox Code Playgroud)

我无法弄清楚为什么这不起作用.我正在运行Laravel 4.2.12

小智 23

试试这个:

'birthday' => 'date_format:Y-m-d|before:today',
Run Code Online (Sandbox Code Playgroud)

再见

  • 适合我.用"after:now"进行测试 (2认同)

lma*_*occ 17

仅供未来用户使用:

Laravel 5使用表单请求:

'birthday' => 'before:today',    // Doesn't accept today date
'birthday' => 'before:tomorrow', // Accept today date
Run Code Online (Sandbox Code Playgroud)

  • @FrenchMajesty 您可以传递任何自定义日期到日期验证。例如:`date_format:Ymd H:i:s|before:2019-08-22 00:00:00` (2认同)

Ant*_*ida 7

我建议你为生日添加一个before和一个after声明。

'birthday' => date_format:Y-m-d|before:today|after:1900-01-01
Run Code Online (Sandbox Code Playgroud)

您将避免出现像1111-1-1因为 1900 年之前没有人出生这样的条目。


mop*_*922 6

定义类成员变量时不能使用函数。您必须将该部分移到构造函数中:

<?php
class Foo {
    public static $rules = array(
        'first_name' => 'required|alpha-dash',
        'last_name' => ' required|alpha-dash',
        'media_release' => 'required|boolean'
    );
    public function __construct()
    {
        self::$rules['birthday'] = 'before:' . date('Y-m-d');
    }
Run Code Online (Sandbox Code Playgroud)

编辑:

上述解决方案可能无法在Laravel中使用。您可能必须使用“自定义验证程序”:

http://laravel.com/docs/4.2/validation#custom-validation-rules

更新:

看起来Laravel 5引入了更好的解决方案。请参阅下面的费尔南多答案。