簡體   English   中英

Laravel獲取會話不返回任何內容

[英]Laravel get session not returning an anything

我正在學習laravel,並且在注冊時使用Auth :: login,在登錄時使用Auth :: attempt,我已經登錄,並且在主布局中正在執行以下操作(使用Blade PHP)

        @if(!Auth::check())
        <li><a href="#">Home</a></li>
        @endif
        @if(Auth::check())
            <li><a href="{{ route('news') }}">News</a></li>
            <li><a href="{{ route('admin') }}">Admin</a></li>
            <li><a href="#">{{ session()->get('username') }}</a></li>
        @endif

正如您可能已經注意到的那樣,這是用於菜單的,當我注銷時,我僅獲得主菜單,而當我登錄時,我僅獲得新聞和管理員,我試圖在菜單中設置顯示用戶名以及路由到配置文件(尚未創建)

如果我犯了一個愚蠢的錯誤,我深表歉意,我擅長於php,但是我對laravel和MVC還是很陌生

在這種情況下,您應該嘗試使用Auth::guest()而不是Auth::check()

例如:

@if (Auth::guest())
    // Code that a guest can see, in your case que Home
@else
    // Code that a logged in user can see
@endif

對我來說,效果很好!

希望能幫助到你 ;)

根據您的會話管理代碼,您的用戶名可能不會出現在會話外觀中。 登錄后獲取用戶數據的默認方式是使用: Auth::user()

如果用戶具有公共屬性username ,則可以通過

Auth::user()->username

順便說一句,最好使用@else而不是再次檢查反向Auth :: check()條件

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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