2016-04-08 7 views
2

私は同様の質問をしているので、すべての答えを試しました。バリデーターはルールをチェックし、うまくリダイレ​​クトします。しかし、私の見解では$ errors変数はまだ空です。

コントローラー:

public function postSlidesAdd(Request $request) 
    { 
     $validator = Validator::make($request->all(), [ 
      'priority' => 'required', 
      'text' => 'required', 
      'image' => 'required' 
     ]); 

     if ($validator->fails()) { 
      return redirect()->back()->withErrors($validator); 
     } 
     //insert to db and redirect back 
    } 

ルート:

Route::group(['middleware' => ['web']], function() { 
    Route::post('/admin/slides/add', [ 
     'uses' => '[email protected]', 
     'as' => 'admin.slides.add' 
    ]); 
}); 

ビュー:

<div class=""> 
      @if(count($errors)>0)) 
       <ul> 
        @foreach($errors->all() as $error) 
         <li>{{$error}}</li> 

        @endforeach 
       </ul> 

      @endif 
     </div> 

私は小さく、重要な何かが欠けていると思う、助けてください。 私はLaravelを使用しています。5.2.29

更新日: これは助けになるものです。私のコントローラで:

if ($validator->fails()) { 
     dd($validator->errors()); 
     return back()->withErrors($validator); 
    } 

これは、配列 'messages'をダンプし、内部は[input names =>エラーメッセージ]を含む別の配列です。私はこれがビューに送られる配列だと思うが、それは通過しない。私が間違っていることをどうしてください助けてください。

+0

私はそれが '$ validator-> message()'だと思いますか? – aldrin27

+0

速やかな応答ありがとうございますが、message()メソッドはバリデーターに存在しません。 – robertjoep

+0

ow。 'messages()' – aldrin27

答えて

0

ビューファイルにエラーがあります。余分なカッコがあります。変更してみてくださいこの:これに

return redirect()->back()->withErrors($validator); 

return back()->withErrors($validator); 
+0

迅速な対応をありがとうございます。私はそれを更新し、$エラーのデータはまだありません。 – robertjoep

+0

私は別の潜在的な問題で私の答えを編集しました –

+0

こんにちは、私はそれを更新しました。まだ空です。もしこれが助けあれば;私のコントローラで: if($ validator-> fails()){ dd($ validator-> errors()); return back() - > withErrors($ validator); } 内部に 'messages'の配列を返します。[input names => error messages]を持つ別の配列です。 – robertjoep

4

app\Http\Kernel.php動きで

@if(count($errors) > 0) 

また、お使いのコントローラでは、変更してみてください。これに

@if(count($errors)>0)) 

\Illuminate\Session\Middleware\StartSession::class 'web'から$middlewareGroups$middleware

関連する問題