【问题标题】:Sidebar menu hide from users using laravel使用 laravel 对用户隐藏侧边栏菜单
【发布时间】:2020-02-24 04:50:28
【问题描述】:

我是 laravel 的初学者,我从用户那里获得了隐藏的侧边栏菜单,它可以成功运行,但是当从管理员注销时,我会遇到错误,如何修复它,谢谢。请看错误https://flareapp.io/share/NPL9bz7w

HTML 视图

             <!-- Sidebar Menu -->
             <nav class="mt-2">
             <ul class="nav nav-pills nav-sidebar flex-column" data-widget="treeview" 
              role="menu" data-accordion="false">
             <!-- Add icons to the links using the .nav-icon class
             with font-awesome or any other icon font library -->   
             <!--Admin sidebar menu -->
             @if(Auth::user()->type  == "admin")
             <li class="nav-item">
            <a href="{{url('admin')}}" class="nav-link">
            <i class="fas fa-comments"></i>
            <p>Users Permission</p>
            </a>
            </li>
            <li class="nav-item">
            <a href="{{url('manage_users')}}" class="nav-link">
            <i class="fas fa-comments"></i>
             <p>Manage Users</p>
            </a>
           </li>
          <li class="nav-item">
          <a href="{{url('register')}}" class="nav-link">
           <i class="fas fa-comments"></i>
           <p> User Register</p>
           </a>
           </li>
           <!-- end Admin sidebar menu -->
           <!--   User sidebar menu -->
           @else
          <li class="nav-item">
          <a href="{{url('viewprofile')}}" class="nav-link">
          <i class="fas fa-user">  </i>
          <p>View Profile</p>
          </a>
          </li>
          <li class="nav-item">
          <a href="{{url('DashBoard')}}" class="nav-link">
           <i class="fas fa-comments"></i>
           <p>Chat Room</p>
           </a>
          </li>

          @endif




    </ul>
  </nav>
  <!-- /.sidebar-menu -->

【问题讨论】:

    标签: laravel


    【解决方案1】:

    问题是,您正在检查 @if(Auth::user()-&gt;type == "admin") 以检查登录的管理员。如果管理员已注销,则没有Auth::user()。我认为这是您面临的问题。所以像这样改变条件

     @if(Auth::check() && Auth::user()->type  == "admin")
        // Admin menu bar
     @elseif (Auth::check())
        // User menu bar
     @endif
    

    我认为这将解决问题。

    【讨论】:

    • 请在我从管理员注销时查看flareapp.io/share/NPG0MM7G#F47,谢谢。
    • $user_permission = Users_Permissions::with('user')->Where('user_id',Auth::user()->id)。这与我在答案中提到的问题相同。如果用户已注销,则 Auth::user() 为空
    • 这里你试图从一个空值中获取属性 id
    【解决方案2】:

    由于用户已注销,Auth::user() 为空。

    因此,当您尝试获取其类型时,它正在抛出

    试图获取非对象的属性“类型”

    你需要检查用户是否登录,然后检查其类型。

    @if(Auth::check() && Auth::user()->type  == "admin")
    

    Auth::check() 如果用户已登录,将返回 true

    【讨论】:

      【解决方案3】:

      首先检查用户是否登录,然后检查用户是否为管理员

               <!-- Sidebar Menu -->
               <nav class="mt-2">
               <ul class="nav nav-pills nav-sidebar flex-column" data-widget="treeview" 
                role="menu" data-accordion="false">
               <!-- Add icons to the links using the .nav-icon class
               with font-awesome or any other icon font library -->   
               <!--Admin sidebar menu -->
               @auth
               @if(Auth::user()->type  == "admin")
               <li class="nav-item">
              <a href="{{url('admin')}}" class="nav-link">
              <i class="fas fa-comments"></i>
              <p>Users Permission</p>
              </a>
              </li>
              <li class="nav-item">
              <a href="{{url('manage_users')}}" class="nav-link">
              <i class="fas fa-comments"></i>
               <p>Manage Users</p>
              </a>
             </li>
            <li class="nav-item">
            <a href="{{url('register')}}" class="nav-link">
             <i class="fas fa-comments"></i>
             <p> User Register</p>
             </a>
             </li>
             <!-- end Admin sidebar menu -->
             <!--   User sidebar menu -->
             @else
            <li class="nav-item">
            <a href="{{url('viewprofile')}}" class="nav-link">
            <i class="fas fa-user">  </i>
            <p>View Profile</p>
            </a>
            </li>
            <li class="nav-item">
            <a href="{{url('DashBoard')}}" class="nav-link">
             <i class="fas fa-comments"></i>
             <p>Chat Room</p>
             </a>
            </li>
      
            @endif
            @endauth
      
      
      
      
      </ul>
      

      【讨论】:

        【解决方案4】:

        使用isset方法

        @if(isset(Auth::user()->type) && Auth::user()->type== "admin")
        

        你也可以使用 Auth::check()

        @if(Auth::check() && Auth::user()->type== "admin")
        

        【讨论】:

          猜你喜欢
          • 2017-04-08
          • 2021-01-19
          • 2018-12-05
          • 1970-01-01
          • 1970-01-01
          • 2017-05-16
          • 1970-01-01
          • 2020-10-27
          • 2019-05-30
          相关资源
          最近更新 更多