2017-06-04 68 views
0

當Laravel引發404異常或任何類型的異常時,auth()幫助程序在這些頁面中返回null,404,400 ...任何異常都有問題。Laravel auth()在404's上返回false

正如有人建議,我搬到2箇中間件到globalgroup

\App\Http\Middleware\EncryptCookies::class, 
\Illuminate\Session\Middleware\StartSession::class, 

然而,就引起了另一個問題,這是記錄我出去每次我刷新頁面,當我提出這些中間件回登錄的用戶留登錄。

所以,現在,我仍然需要一種方法來使用auth(),在404頁面中,沒有任何意義的是當用戶已經登錄時,請在404頁上登錄請登錄,這真的很糟糕Laravel 。

其實上面提到的解決方案很多,在代碼中會導致很多問題,並且檢測到已驗證的用戶,我只是做了一些測試,它在每次刷新時創建一個新的會話。

+0

是404頁扔?那些404頁面是自定義頁面嗎? – jycr753

+0

@ jycr753 404頁是好的,我試圖編輯處理程序和自定義/errors/404.blade.php文件,404不是問題,問題是,當我訪問一個404頁面,刀片內,我無法(),auth() - > user()返回false/null – Emad

+0

@Emad我只是再次檢查,它的工作完美,沒有會議得到清除像你說的。我第一次檢查時也是如此。我必須與數據庫會話相關。我最初測試的文件會話工作正常。 – Sandeesh

回答

0

問題是在我以前的相關的問題auth() method null on Exceptions

解決這些中間件應移動並沒有複製到全局陣列。我在Web組和全局組中有多個實例,這是導致此問題的原因。

因此,將'web'組中的App/Http/Kernel.php中的中間件複製到'中間件'組將在每次刷新時重新創建會話。我希望有人會覺得這很有用。

相關問題