2017-05-23 167 views
0

报价laravel documentation验证错误消息

同样,在你的语言文件中指定您的验证消息时,使其成为轻而易举的使用单个确认消息的基于阵列的字段,你可以使用*字符:

'custom' => ['person.*.email' => ['unique' => 'Each person must have a unique e-mail address']]

看来这是行不通的。我有一个确认消息:

'infos.*.*.*' => ['required' => 'My text'] 

然后我在我的视图一些输入:

<input type="text" name="infos[1234][0][name]"> 
<input type="text" name="infos[1234][1][name]"> 
<input type="text" name="infos[5678][0][name]"> 

而在我的控制器I验证输入:

$this->validate($request, [ 
    'infos.*.*.*' => 'required' 
]); 
鉴于

我有错误显示器:

@if (count($errors) > 0) 
    <strong>Oops. Errors:</strong> 
    <ul> 
     @foreach ($errors->all() as $error) 
     <li>{{ $error }}</li> 
     @endforeach 
    </ul> 
@endif 

如果我离开所有输入空我得到:

My text 
My text 
My text 
My text 
My text 
etc. 

我的代码有什么问题?阅读Laravel文档虽然它应该工作(我的意思是:它应该只显示一次)。我误解了一些东西吗?

+0

'$ this-> validate($ request,[ 'infos。*。*。name'=>'required' ]);' –

+0

@AlivetoDie好了我的例子被简化了。我用'name'输入一些输入,用'email'输入其他输入。我想用相同的验证器全部使用它们。 –

+0

它按预期工作。如果发送失败的数组中的3个输入,则会收到3条错误消息,每个失败的验证一条。 – Sandeesh

回答

0

这是按预期工作的。由于您在数组中传入多个输入,因此验证会为每个项目引发错误。因此3个输入有2个导致错误和1个通过显然会通过2个输入的错误。所以在你的情况下,多个错误是由于多个输入未通过验证。