在Laravel中验证之前运行任务

时间:2014-10-27 14:44:39

标签: php validation date laravel

好的,所以我有一个表格要求用户: -

  • 他们出生的那天(0-31等)
  • 他们出生的月份(1月至12月)
  • 他们出生的那一年

然后我用以下方式验证:

$rules = array(
    '???'   => 'required:date'
);
$validator = Validator::make($data, $rules);

但是我不知道我可以做些什么/做什么来把日期,月份,年份放入我可以用于验证的内容中,无论是在视图上还是在验证过程中。

谢谢, 汤姆

1 个答案:

答案 0 :(得分:1)

如果您想使用链接的验证规则,您的日期需要以Laravel的日期分析程序能够识别的格式作为单个字段进入(dd-mm-yyyy,dd / mm / yy ,yyyy-mm-dd等) - 所以你的表单应该包含一个名为' date'的文本字段。在这种情况下。

如果它作为三个单独的字段进入,则需要在它们靠近验证器之前将它们转换为单个字段。这样的事情可能是:

$rules = [
    'name'  => ['required'],
    'email' => ['required', 'email'],
    'date'  => ['required', 'date'],
];

// transform date from three separate fields to yyyy-mm-dd
// TODO: ensure the things are zero-padded maybe?
$date = Input::get('year').'-'.Input::get('month').'-'.Input::get('day');

$v = Validator::make(
    Input::only('name', 'email') + ['date' => $date],
    $rules
);