我正在学习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一般
答案 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()条件