2017-10-18 46 views
0

我剛剛發現,如果包含auth中間件,Auth外觀纔會起作用。不幸的是,包括auth中間件在用戶未登錄時強制用戶重定向。這意味着路由只能用於登錄用戶,或者僅用於非登錄用戶。Laravel:如何查找用戶是否登錄,而不強制重定向?

我想擁有一個頁面,無論用戶是否登錄,都可以訪問該頁面,但如果他們是用戶對象,則會顯示一些其他數據。我該怎麼做呢?

看起來最簡單的方法是創建兩條路由,它們都由相同的控制器方法支持。這是做這件事的最好方法嗎?

編輯: 隨着進一步的調查,我發現問題是,默認警衛不是用戶登錄的,並且我能夠獲得登錄的用戶auth Auth :: guard() - > user()而不是Auth :: user()。我無法在全局範圍內更改默認防護,因此問題就變成了:是否有一種方法可以在每個路由的基礎上設置默認防護?還是我需要使用auth :: guard()到處?

回答

5

使用Auth::check()在視圖中檢查,如果用戶在

+0

驗證::檢查()返回false,即使用戶登錄在 – Benubird

+1

那麼你沒有使用默認的laravel用戶類登錄 – madalinivascu

+1

你有沒有自定義的登錄實現? – madalinivascu

0

登錄您可以使用身份驗證::檢查()

if($user = Auth::check()) 
{ 
    echo 'logged in'; 
}else{ 
echo 'not logged in'; 
} 
+0

即使用戶登錄,Auth :: check也會返回false – Benubird

相關問題