Laravel得到的会话没有返回任何东西

时间:2017-02-13 02:36:22

标签: php laravel laravel-5.3

我正在学习laravel,我正在使用Auth :: login注册和Auth ::尝试登录,我登录后我在主布局中执行以下操作(使用刀片式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一般

2 个答案:

答案 0 :(得分:1)

在这种情况下,您应该尝试使用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

对我而言,它的效果非常好!

希望它有所帮助;)

答案 1 :(得分:1)

根据您的会话管理代码,您的用户名可能不会出现在会话外观中。登录后获取用户数据的默认方式是使用:Auth::user()

如果用户拥有公共属性username,您就可以通过

Auth::user()->username

顺便说一下,使用@else而不是再次检查逆Auth :: check()条件

也是一件好事。