繁体   English   中英

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

[英]laravel 5.1 button visibility on auth::check

如果管理员登录,试图在我的导航栏中layout.blade.php文件上显示一个按钮(例如“管理员面板”按钮)。如何编写代码?

                    <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>

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

  @if(Auth::check() && Auth::user()->is_admin)

  <li><a href="/AdminPanel">Admin Panel</a></li>

  @endif

好吧,我认为您可以使用@unles(Auth::check()) You are not Signed in @endunless类的刀刃功能@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访问者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)
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM