2016-04-10 7 views
0

私は厳密な慣行に従い5.2文書を守っています。セッションFlashメッセージがコーディングされていてもどこにも表示されない

1)これは、コントローラの$ property-> save()の直後にあるコードスニペットです。エラーがある場合、それが戻っ作成フォームページに戻りますが、代わりにフィールド内の既存のデータを結合する機能

Session::flash('success', 'property table filled'); 
Session::flash('errors', 'These are the errors'); 

など

第二の問題は、Validateメソッドということ、それはアウトすべてをワイプされます私は最初からフォームを開始する必要があります。また、それは文書によると、すべてのエラーメッセージ

public function store(Request $request){    

      $this->validate($request, array(

      'country' => 'bail|required|max:100', 
      'region' => 'bail|required|max:100', 
      etc 

は表示されません、これだけでは、合格に失敗した場合には、ポストを作成するフォームを示し(1以上のCreateメソッドに戻す必要があります)、一連のエラーを発行します。私は、リソースコントローラを使用しておりますので 、ルートのすべてが1行に含まれており、また、コントローラともののすべては、Webミドルウェア内にある:

Route::group(['middleware' =>'web'], function(){ 
Route::auth(); 

    Route::get('/', function() { 
    return view('welcome'); 
}); 

Route::get('/home', '[email protected]'); 
Route::resource('property', 'PropertyController'); 


}); 

これは私が持っている完璧なスニペットですそれがセッションを持っているすべてのページのメッセージ(成功または失敗)が表示されるように、レイアウトに含まれているパーシャル:代わりに、テーブルのデータベース内のデータの格納が成功した場合

@if(Session::has('success')) 
<div class="alert alert-success" role="success"> 
<strong>Success: </strong> {{Session::get('success')}} 

</div> 
@endif 

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

、それは成功したフラッシュセッションメッセージをエコーアウトしません。

質問:

は何も表示されないと、なぜそれは私にすべてのフィールドを空にしない理由提出されたデータにエラーがありました。フィールドを空にする効果は、ページをリフレッシュするとき(フィールドが塗りつぶされたままである)ではなく、ブラウザのURLボックスをクリックして押したときと同じです。

答えて

0

これは、回答が得られたが、それがなぜ機能するのか正確にはわからないケースの1つです。

Session::flash('success', 'property table filled'); 
Session::flash('errors', 'Posting failed'); 

中:

私はすでにルートファイル内のWebミドルウェア内部リソースコントローラメソッドを持っていたが、これは私が配置する必要がなかったことが判明した(またはむしろそれは十分ではなかったです)プロパティコントローラ(その後、ルートでのWebミドルウェア内でこのコントローラはファイル)が、実際に目のルートでそこに自分の権利上のものの2行は

Session::flash('success', 'property table filled'); 
Session::flash('errors', 'Posting failed'); 

ファイル私はそれらを削除する場合ように、これはそんなにありますコントローラから、これはまだ動作しますが、削除した場合それらはルートファイルからのものですが、そうではありません。

関連する問題