对于此规则,我收到错误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
我建议您为生日添加before
和after
声明。
'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 引入了更好的解决方案。请参阅下面的费尔南多的答案。