Laravel 4验证已损坏

sun*_*kid 8 php validation laravel laravel-4

一个简单的日期格式mm/dd/yyyy验证就是我所需要的......

$rules = array(
    'renewal_date' =>  array('required', 'date_format:?')
    );
Run Code Online (Sandbox Code Playgroud)

我该如何设置日期格式?Laravel文档可以更好.

Ant*_*iro 12

文档对我很清楚,你应该使用

DATE_FORMAT:格式

"验证字段必须与根据date_parse_from_format PHP函数定义的格式匹配."

看着它:http://php.net/manual/en/function.date-parse-from-format.php,我看到你可以这样做:

$rules = array(
    'renewal_date' =>  array('required', 'date_format:"m/d/Y"')
    );
Run Code Online (Sandbox Code Playgroud)

这是纯PHP的测试:

print_r(date_parse_from_format("m/d/Y", "04/01/2013"));
Run Code Online (Sandbox Code Playgroud)

您也可以在Laravel中手动执行以测试:

$v = Validator::make(['date' => '09/26/13'], ['date' => 'date_format:"m/d/Y"']);
var_dump( $v->passes() );
Run Code Online (Sandbox Code Playgroud)

给我打印

布尔值为true

  • 'renewal_date'=> array('required','date_format:"m/d/Y"')不起作用 (2认同)

mpp*_*les 6

我遇到了类似的问题,但有ad/m/Y日期格式.就我而言,问题是我为同一个字段定义了"date"和"date_format"规则:

public static $rules = array(
    'birthday' => 'required|date|date_format:"d/m/Y"',
    ...
Run Code Online (Sandbox Code Playgroud)

解决方案是删除"日期"验证器:您不能同时使用两者.像这样:

public static $rules = array(
    'birthday' => 'required|date_format:"d/m/Y"',
    ...
Run Code Online (Sandbox Code Playgroud)

之后,一切都很好.


sun*_*kid 4

解决方法:

'renewal_date' => array('required', 'date_format:m/d/Y', 'regex:/[0-9]{2}\/[0-9]{2}\/[0-9]{4}/')
Run Code Online (Sandbox Code Playgroud)