我想问一些关于Laravel验证的建议......
假设我有一个名为invoiceAddress[name]
的输入,并且在控制器中我有一个规则
$rule = ['invoiceAddress.name' => 'required',];
或只是
$validator = \Validator::make($request->all(), [
'invoiceAddress.name' => 'required',
]);
现在,在自定义验证语言文件validation.php
中,我能以某种方式嵌套属性吗?像:
'required' => ':attribute is mandatory',
'attributes' => [
'invoiceAddress' => [
'name' => 'blahblah'
],
],
如果我尝试按上面的方式嵌套属性,我会得到
ErrorException
mb_strtoupper() expects parameter 1 to be string, array given
因为我正在使用字段(如上所述)
['name' => 'blahblah']
我正在尝试使用该文件和:attribute
指令获取自定义消息(如上面代码中所述)。
我基本上是在尝试这样做How to set custom attribute labels for nested inputs in Laravel但是我得到了上面提到的错误......
提前谢谢你......
答案 0 :(得分:1)
关于嵌套属性的注释
如果您的HTTP请求包含“嵌套”参数,您可以使用“dot”语法在验证规则中指定它们:
$this->validate($request, [
'title' => 'required|unique:posts|max:255',
'author.name' => 'required',
'author.description' => 'required',
]);
参考:https://laravel.com/docs/5.3/validation#quick-writing-the-validation-logic(关于嵌套属性部分的注释)