拉拉维尔在今天统治之前..怎么办


Laravel before today rule... how to do

对于此规则,我收到错误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')
);

我不知道为什么这行不通。我正在运行拉拉维尔 4.2.12

试试这个:

'birthday' => 'date_format:Y-m-d|before:today',

再见

仅供未来用户使用:

Laravel 5 使用表单请求:

'birthday' => 'before:today',    // Doesn't accept today date
'birthday' => 'before:tomorrow', // Accept today date

我建议您为生日添加beforeafter声明。

'birthday' => date_format:Y-m-d|before:today|after:1900-01-01

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

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

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

编辑:

上述解决方案在拉拉维尔可能不起作用。您可能需要改用"自定义验证程序":

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

更新:

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