[英]Laravel Error stored in session
我正在學習laravel(當前使用5.0.34版本),並且我有一個發布請求,當遇到錯誤時輸入這段代碼
$message = new MessageBag(["register" => Lang::get("errors.cant_checkout")]);
return Redirect::back()->withErrors($message);
結果是正確的,他重定向到同一視圖,我可以訪問$ error變量。 問題是有時錯誤始終存儲在會話中,因此每次我進入頁面時它將輸出$ error。 怎么會這樣 難道我做錯了什么?
預期的:第一次輸出后,$ error離開Session
在您的示例中,您只是使用withErrors->
將錯誤消息刷新到視圖中。 刷新的數據僅在后續的HTTP請求期間可用,因此將不會保存。
但是,我認為您遇到的問題是,默認情況下,將$errors
發送到每個視圖,因此它將始終被設置。 在您的視圖中,您將需要檢查是否有任何實際的錯誤消息要顯示(如下所示)。 或者,您可以刷新另一條數據,例如->with('specific_error', $message)
然后在視圖中查找$specific_error
。
@if($errors->any())
// do work
<ul>
@foreach($errors->all() as $error)
<li>{{ $error }}</li>
@endforeach
</ul>
@endif
搜索后,我發現導致問題的原因是已安裝的名為DebugBar的插件。 禁用它后,一切運行順利!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.