对于此规则,我收到错误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')
);
我无法弄清楚为什么这不会起作用。我正在运行Laravel 4.2.12
答案 0 :(得分:17)
试试这个:
'birthday' => 'date_format:Y-m-d|before:today',
再见
答案 1 :(得分:12)
仅供未来用户使用:
Laravel 5使用表单请求:
'birthday' => 'before:today', // Doesn't accept today date
'birthday' => 'before:tomorrow', // Accept today date
答案 2 :(得分:4)
定义类成员变量时不能使用函数。您必须将该部分移动到构造函数中:
<?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');
}
修改强>
上述解决方案可能无法在Laravel中使用。您可能不得不使用“自定义验证器”:
http://laravel.com/docs/4.2/validation#custom-validation-rules
<强>更新强>
看起来Laravel 5引入了更好的解决方案。请参阅Fernando的答案,如下所示。
答案 3 :(得分:1)
我建议您为生日添加before
和after
声明。
'birthday' => date_format:Y-m-d|before:today|after:1900-01-01
你会避免像1111-1-1
这样的条目,因为1900年以后没有人活着。