我正在构建一个应用程序,我必须为用户角色显示不同的导航。但是,这就是我想出来的
导航示例:
<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 -->
我已经对它进行了测试并且工作正常,但我只是想知道这是否会影响应用性能,让它变慢?如果有,有更好的方法吗?这就是全部,谢谢!
答案 0 :(得分:1)
这不应该影响您的申请速度。一些if/else
块不会发生太大变化。这个用户的角色将被加载到每个页面上,但这可能是一个非常轻松的查询,而且Laravel非常聪明,每次请求只能执行一次此查询。
结论:这看起来很好。 :)