使用嵌套属性的Laravel Validation自定义消息

时间:2016-12-07 12:53:20

标签: laravel

我想问一些关于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但是我得到了上面提到的错误......

提前谢谢你......

1 个答案:

答案 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(关于嵌套属性部分的注释)