2016-04-10 17 views
0

我遵循5.2文檔的嚴格實踐,但驗證令我瘋狂。 1)這是我在控制器中的$ property-> save()後面的代碼片段。功能會話閃存郵件儘管編碼沒有顯示任何地方

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

第二個問題是,該驗證方法,如果有錯誤,它會恢復到創建表單頁面,而是在領域結合現有的數據,這將清除所有內容,所以我必須從頭開始表格。此外,它不會顯示任何錯誤消息

public function store(Request $request){    

      $this->validate($request, array(

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

根據文檔,這本身就應該,在不合格的情況下,返回到上述(一,顯示錶創建後創建方法)併發出一組錯誤。 由於我使用的是資源控制器,所有的路線都包含在一個行,而且,所有控制器和東西是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 

相反,如果數據表中的數據庫存儲是成功的,它仍然不會迴應任何成功的Flash會話消息。

問:

有沒有在提交的數據的任何錯誤,爲什麼不顯示任何東西,它爲什麼清空我所有的字段。清空字段的效果與刷新頁面時不會發生的效果相同(填充的字段保持填充狀態),但是當您單擊並按下瀏覽器的URL框時。

回答

0

那麼,這是你得到答案的情況之一,但你不知道它爲什麼會起作用。

雖然我已經在Web中間件內部資源控制器方法在routes文件,事實證明,我沒有放置(或者更確切地說,它是不夠的)這樣的:

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

在物業控制器(然後該控制器在Web中間件內的路線文件),但實際上這兩條線在他們自己的權利在那裏屆routes文件

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

這就是以至於如果我刪除從控制器,這仍然有效,但如果我刪除他們從路線文件,它不。

相關問題