2017-05-23 23 views
0

のメッセージ:あなたの言語ファイルであなたの検証メッセージを指定するとき検証エラーは<a href="https://laravel.com/docs/5.4/validation#validating-arrays" rel="nofollow noreferrer">laravel documentation</a>を引用配列

同様に、あなたはそれアレイベースのフィールドのための単一の検証メッセージを使用する微風作り、*文字を使用することがあります。

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

動作しませんようです。私が持っているビューで

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

そして:

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

そして、私のコントローラで

私は入力を検証:

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

は、その後、私は私の見解では、いくつかの入力を持っている:私は、検証メッセージを持っていますエラー表示器:

@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、['情報*。*' name '=>'が必要です ' ]);' –

+0

@AlivetoDie Ok私の例は単純化されました。私は 'name'と' email'を持ついくつかの入力を持っています。そして、私はそれらをすべて同じバリデーターで使いたい –

+0

これは意図したとおりに動作しています。アレイに3つの入力を送信すると、失敗した検証ごとに1つずつ、3つのエラーメッセージが表示されます。 – Sandeesh

答えて

0

これは意図したとおりに動作しています。配列に複数の入力を渡すので、バリデーションによって各項目にエラーが発生します。したがって、2つの入力と3つの入力を持つ入力は2つの入力に対して明らかにエラーを渡します。したがって、複数のエラーは、複数の入力が検証に失敗したためです。

関連する問題