laravel 5.1按钮在auth::check上的可见性


laravel 5.1 button visibility on auth::check

如果Admin登录,尝试在layout.blade.php文件的导航栏中显示一个按钮(例如Admin Panel按钮)。如何编写代码?

                    <ul class="nav navbar-nav  navbar-right">
                          <li><a href="/">Home</a></li>
                          <li><a href="/farmerPoint">Point List</a></li>
                          <li><a href="/crop">Crop List</a></li>
                          <li><a href="/AboutUs">About Us</a></li>
                          <li><a href="/SiteAdmin">Site Admin</a></li>
                          <li><a href="/ContactUs">Contact Us</a></li>
thisbutton  ----------->  <li><a href="/AdminPanel">Admin Panel</a></li>
                          @if(Auth::guest())
                          <li><a href="/login">Log in</a></li>
                          @else
                          <li><a href="/logout">Logout</a></li>
                          @endif
                       </ul>
                        <ul class="nav navbar-nav  navbar-right">
                          <li><a href="/">Home</a></li>
                          <li><a href="/farmerPoint">Point List</a></li>
                          <li><a href="/crop">Crop List</a></li>
                          <li><a href="/AboutUs">About Us</a></li>
                          <li><a href="/SiteAdmin">Site Admin</a></li>
                          <li><a href="/ContactUs">Contact Us</a></li>
                          @if (Auth:check() && Auth::user()->isAdmin())
                          <li><a href="/AdminPanel">Admin Panel</a></li>
                          @endif
                          @if(Auth::guest())
                          <li><a href="/login">Log in</a></li>
                          @else
                          <li><a href="/logout">Logout</a></li>
                          @endif
                       </ul>

如果在Users表中有一个名为is_admin的布尔值,则可以执行此操作。

  @if(Auth::check() && Auth::user()->is_admin)
  <li><a href="/AdminPanel">Admin Panel</a></li>
  @endif

我认为你可以使用blade函数@unles(Auth::check()) You are not Signed in @endunless

应该是:

@if(Auth::check())
    @if(Auth::user()->is_admin == true)
        <li><a href="/AdminPanel">Admin Panel</a></li>
    @endif
@endif

如果你要做@if(Auth::check() && Auth::user()->is_admin == true),你将收到访客的trying to get property of non-object

您也可以将其简化为以下内容:

@if(session()->has('admin')
    <li><a href="/AdminPanel">Admin Panel</a></li>
@endif

在这种情况下,在您的登录控制器方法中,您将应用以下内容:

if(Auth::user()->is_admin == true)
{
    session()->put('admin', true)
}