2013-12-19 38 views
0

如何將驗證錯誤直接傳遞給Laravel中沒有重定向的視圖? 我不想這樣做:如何通過驗證錯誤在Laravel中查看而不重定向

return Redirect::back()->withErrors($validator)->withInput(); 

而是:

Input::flash(); // for repopulating fields 
Validator::flash(); // this doesn't exist  
return View::make('fragments/login_ajax'); 

或者另一種更簡潔直接生成不重定向的視圖。最佳將是類似的東西,但這是行不通的:

return View::make('fragments/login_ajax')->withErrors($validator)->withInput(); 

原因是,這是一個基於ajax登錄的答案。重定向到僅用於顯示相同視圖的另一種方法認爲不必要。

乾杯

回答

0

真正的答案: 這是不是一個值得在花費時間的問題。這是一個架構問題。

可能的解決方案,以您的情況(不推薦): 使auth一個新的路線,並讓它返回錯誤/消息json。然後讓JS處理錯誤/消息/邏輯。

+0

好的,謝了,讓我們去體驗一下架構變化。我用這種方法得到了一個可行的解決方案:post方法只處理邏輯,然後它重定向(帶有錯誤和輸入)到get Method,它也創建非ajax登錄表單。這將得到對Request :: ajax()的方法檢查,並決定是返回完整的登錄表單還是隻返回ajax代碼片段。你認爲這是一個更好的方法嗎? – singultus

0

雖然同意這樣做不是個好主意,但可以使用View::share()將錯誤分享給所有視圖。

\View::share('errors', $errors);

相關問題