我正在研究Laravel 5.8项目,并尝试显示使用requiredIf
验证规则进行验证的自定义验证消息。
这是我的设置方法:
$validation = Validator::make(
$request->all(),
[
...
'sum' => [
Rule::requiredIf(function() use ($request){
$model = Model::find($request->id);
return $model->is_special; //returns a boolean value
}),
'numeric'
],
...
],
[
...
'sum.required_if' => 'This cannot be blank',
'sum.numeric' => 'Must use a number here',
...
]
);
现在,验证工作正常,并且验证的自定义消息numeric
也应显示,但是我为该requiredIf()
方法获得的消息是Laravel的默认错误消息。
我也尝试使用,'sum.requiredIf' => '...'
但是那也不起作用,并且似乎找不到这种情况的任何文档或示例。
我对此进行了一段时间的修改,并注意到要使其正常工作,我需要定义
'sum.required' => 'This cannot be blank'
而不是'sum.required_if' => 'This cannot be blank',
。
不知道这是否是预期的行为,或只是一个解决方法,但我的推论是,有回调Rule::requiredIf(function() use ($request){...})
的参数:other
并:value
没有传递所以它回落到required
消息,我想这是有道理的,因为required_if
并required
不会在相同的使用:attribute
。
希望这对遇到此问题的任何人有所帮助。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句