为不同的用户角色显示不同的导航

时间:2017-07-10 07:44:02

标签: laravel laravel-5

我正在构建一个应用程序,我必须为用户角色显示不同的导航。但是,这就是我想出来的

导航示例:

<div id="navbar" class="navbar-collapse collapse">
    <ul class="nav navbar-nav navbar-right">
       @if (Auth::check() && Auth::user()->role == 'author')
       <li><a href="{{ url('user/' . Auth::user()->nameslug) }}"><i class="fa fa-user"></i> {{ Auth::user()->name }}</a></li>
       @endif

       @if (Auth::check() && Auth::user()->role == 'admin')
         @if (!empty($page) && $page == 'admin')
           <li class="active"><a href="{{ url('admin') }}"><i class="fa fa-user"></i> Admin</a></li>
         @else
           <li><a href="{{ url('admin') }}"><i class="fa fa-user"></i> Admin</a></li>
         @endif
       @endif

       @if (Auth::check())
       <li><a href="{{ url('logout') }}"><i class="fa fa-sign-out"></i> Logout</a></li>
       @else
          @if (!empty($page) && $page == 'login')
             <li class="active"><a href="{{ url('login') }}"><i class="fa fa-sign-in"></i> Login</a></li>
          @else
             <li><a href="{{ url('login') }}"><i class="fa fa-sign-in"></i> Login</a></li>
          @endif
       @endif
   </ul>   
 </div><!--/.nav-collapse -->

我已经对它进行了测试并且工作正常,但我只是想知道这是否会影响应用性能,让它变慢?如果有,有更好的方法吗?这就是全部,谢谢!

1 个答案:

答案 0 :(得分:1)

这不应该影响您的申请速度。一些if/else块不会发生太大变化。这个用户的角色将被加载到每个页面上,但这可能是一个非常轻松的查询,而且Laravel非常聪明,每次请求只能执行一次此查询。

结论:这看起来很好。 :)