2016-03-15 84 views
1

我目前正在努力解決Laravel問題,我無法解決問題。如果我使用withErrors()傳遞錯誤,則錯誤不會傳遞到錯誤包($ errors)。Laravel 5.2:with重定向不起作用的錯誤

我控制器(的FormController):

public function contact(Request $request) { 

     $validator = Validator::make($request->all(), [ 
      'name' => 'required', 
      'email' => 'required|email', 
      'message' => 'required', 
     ]); 

     if ($validator->fails()) { 
      return redirect()->back()->withErrors($validator)->withInput($request->all()); 
     } 

     return redirect()->back(); 
    } 

的事情是,也withInput()不工作。問題從哪裏來?我感謝您的幫助!

(的一部分)的定義routes.php文件:

Route::group(['middleware' => 'web'], function(){ 
    Route::post('/contact', '[email protected]'); 
}); 

會話配置

return [ 
    'driver' => env('SESSION_DRIVER', 'memcached'), 
    'lifetime' => 120, 
    'expire_on_close' => false, 
    'encrypt' => false, 
    'files' => storage_path('framework/sessions'), 
    'connection' => null, 
    'table' => 'sessions', 
    'lottery' => [2, 100], 
    'cookie' => 'session', 
    'path' => '/', 
    'domain' => null, 
    'secure' => false, 

]; 
+0

會話是否適合你? – matiit

+0

嘗試重定向路線或網址,而不是返回 –

+0

@matiit會話正在處理網站的其他部分。當我檢查POST聯繫()與調試欄時,「錯誤」出現在具有正確錯誤的會話中。 –

回答

0

在Laravel 5.2,您需要使用您的路由web中間件傳遞錯誤的觀點。

Route::group(['middleware' => ['web']], function() { 
    Route::get('/', function() { 
     return view('welcome'); 
    }); 
}); 
+0

感謝您的幫助,不幸的是我已經使用'web'中間件組...我在中間件組之間交換會話時聽到了問題,但我只使用'web'中間件組。 –

0

千萬不要錯過任何東西到withInput

if ($validator->fails()) { 
     return redirect()->back()->withErrors($validator)->withInput(); 
} 

並使用舊的功能得到閃蒸數據

$name = $request->old('name'); 

{{old('name')}} 

希望它可以幫助

+0

我試過了,但沒有任何運氣......我認爲這是一個會話問題,但會議按預期工作。 –

+0

你可以展示你的表格嗎? – oseintow