表单中用于年龄验证的自定义错误消息。(laravel)

时间:2016-12-19 08:25:40

标签: php laravel laravel-5.2

我正在构建一个用户必须年满18岁或以上的表格。我尝试了一些方法,但没有奏效。

在我的控制器中:

$this->validate($request,[
    'birthday' => 'required|date|before:-18 years',
]);

在request.php中:(通过互联网搜索)

abstract class Request extends FormRequest
{
    public function messages()
    {
        return [

            'birthday.before' => 'You must be 18 years old or above',
        ];
    }
}

3 个答案:

答案 0 :(得分:1)

实际上,我并不清楚你的问题。 如果您想要在验证之前自定义消息,请转到resources / lang / en / validation.php并在

更改它
'custom' => [
    'attribute-name' => [
        'rule-name' => 'custom-message',
    ],
],

希望有所帮助!

答案 1 :(得分:0)

您可以计算日期的年龄,然后将其验证为数字。

或者您可以验证日期,即18年前的日期

$dt = new Carbon\Carbon();
$before = $dt->subYears(18)->format('Y-m-d');

$rules = [
     'dob' => 'required|date|before:' . $before
];

或者您可以扩展验证并进行自定义验证,例如:Check user's age with laravel validation rules

答案 2 :(得分:0)

您好,为了获得验证错误,请将验证程序存储在变量中 然后只需使用$validator->errors()来获取错误

$validator = Model::validate($request,[
    'birthday' => 'required|date|before:-18 years',
]);
$errors = $validator->errors();
echo "You error in birthday: ".$errors->get('birthday')[0];