如何解决带有“有时”规则的Laravel Validator自定义消息
这是我的一部分代码,用于验证表单输入:
public function saveData(Request $request){
$form_data = $request->all();
$validation_fields = [
'first_name' => 'required','last_name' => 'required','cod_fisc' => 'sometimes|required|size:16','p_iva' => 'sometimes|required|between:11,13'
];
$errorMsgs = [
'first_name.required' => 'Il campo Nome è obbligatorio.','last_name.required' => 'Il campo Cognome/Ragione sociale è obbligatorio.','cod_fisc.required' => 'Il campo Codice Fiscale deve contenere 16 caratteri','p_iva.required' => 'Il campo Partita Iva deve contenere 11 o 13 caratteri',];
$validator = Validator::make($form_data,$validation_fields,$errorMsgs);
....
}
整个项目都是为意大利人编写的,因此所有消息都必须使用意大利语。
一切正常,但是cod_fisc
和p_iva
的两个规则绑定到“有时”规则,以英语显示。我的自定义错误消息将被忽略。
为什么?
解决方法
在搜索您的问题时,我已找到以下链接:https://laracasts.com/discuss/channels/laravel/sometimes-validator-with-custom-message
其中包含类似的问题。最初的代码是
$v = Validator::make(
$request->all(),[ 'first_name' => 'required|max:60'],['first_name.required' => 'First name is really required,yo']
);
$v->sometimes('last_name','required|in:fake',function($input){
return true;
});
解决方案是
$v = Validator::make(
$request->all(),yo'],['last_name.in' => 'Last name must be fake,too']
);
$v->sometimes('last_name',function($input){
return true;
});
显然,您可以根据sometimes
的结果调用function
Validator::make
并传递字段名称,验证者签名和布尔值function
。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。