簡體   English   中英

Laravel錯誤存儲在會話中

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM