Laravel验证自定义信息

14

我在使用 Laravel 自定义验证消息时遇到了问题,以下是我的代码:

$rules = [
    'first_name'            => 'required|alpha|min:2',
    'last_name'             => 'required|alpha|min:2',
    'email'                 => 'required|email|unique:users,email,' . Input::get('id') . ',id',
    'password'              => 'alpha_num|between:6,12|confirmed',
    'password_confirmation' => 'alpha_num|between:6,12',
    'address'               => 'regex:/^[a-z0-9- ]+$/i|min:2',
    'city'                  => 'alpha|min:2',
    'state'                 => 'alpha|min:2|max:2',
    'zip'                   => 'numeric|min:5|max:5',
    'phone'                 => 'regex:/^\d{3}\-\d{3}\-\d{4}$/',
];
$messages = [
    'unique' => 'The :attribute already been registered.',
    'regex'  => 'The :attribute number has to be formated : xxx-xxx-xxxx.',
];

如果地址或电话号码有问题,因为两者都有正则表达式验证规则,则错误消息将是:该:attribute号码必须格式化为:xxx-xxx-xxxx,请问如何为每个不同的自定义消息?


可能是重复的问题:如何在Laravel 4中扩展Validation类时指定默认错误消息 - Tomasz Kowalczyk
实际上我刚刚解决了,:) 你只需要这个。 - user3150060
如果您解决了这个问题,请回答您的问题,以造福未来的SO用户。 - Tomasz Kowalczyk
$messages = array( 'unique' => ':attribute 已被注册。', 'phone.regex' => ':attribute 号码无效,接受格式为:xxx-xxx-xxxx。', 'address.regex' => ':attribute 格式无效。', ); - user3150060
字段名.唯一 或 字段名.正则表达式 - user3150060
1个回答

20

这是做到它的方法,只需使用'phone.regex'代替使用'regex'

$rules = [
    'first_name'            => 'required|alpha|min:2',
    'last_name'             => 'required|alpha|min:2',
    'email'                 => 'required|email|unique:users,email,' . Input::get('id') . ',id',
    'password'              => 'alpha_num|between:6,12|confirmed',
    'password_confirmation' => 'alpha_num|between:6,12',
    'address'               => 'regex:/^[a-z0-9- ]+$/i|min:2',
    'city'                  => 'alpha|min:2',
    'state'                 => 'alpha|min:2|max:2',
    'zip'                   => 'numeric|min:5|max:5',
    'phone'                 => 'regex:/^\d{3}\-\d{3}\-\d{4}$/',
];
$messages = [
    'unique'        => 'The :attribute already been registered.',
    'phone.regex'   => 'The :attribute number is invalid , accepted format: xxx-xxx-xxxx',
    'address.regex' => 'The :attribute format is invalid.',
];

1
直到今天我才知道这个问题:) 我还删除了一个多余的数组闭合,解决了语法错误:) - Sajad Karuthedath

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接