Php 在Laravel 5.1中显示菜单的最佳方式是什么?
我想问一下,哪种方式是显示带有访问参数的菜单的最佳方式 因此,现在我在我的Php 在Laravel 5.1中显示菜单的最佳方式是什么?,php,laravel,blade,laravel-5.1,middleware,Php,Laravel,Blade,Laravel 5.1,Middleware,我想问一下,哪种方式是显示带有访问参数的菜单的最佳方式 因此,现在我在我的default.blade.php中使用以下代码: @if (Sentry::getUser()->hasAccess('something')) <li class="{{ (Request::is('panda/something') ? 'open' : '') }}"> <a href="{{ URL::to('panda/flot_charts') }}" clas
default.blade.php
中使用以下代码:
@if (Sentry::getUser()->hasAccess('something'))
<li class="{{ (Request::is('panda/something') ? 'open' : '') }}">
<a href="{{ URL::to('panda/flot_charts') }}" class="menu-dropdown">
<span class="menu-text">Menu 1</span><i class="menu-expand"></i>
</a>
<ul class="submenu">
@if (Sentry::getUser()->hasAccess('school'))
<li class="{{ (Request::is('panda/school') ? "active" : '') }}">
<a href="{{ route('school') }}"><i class="menu-icon fa fa-cogs"></i><span class="menu-text">Submenu</span></a>
</li>
@endif
</ul>
</li>
@endif
@if(Sentry::getUser()->hasAccess('something'))
@if(Sentry::getUser()->hasAccess('school'))
-
@恩迪夫
@恩迪夫
它看起来像:
我知道这个解决方案不是很好。我正在寻找一种更简单的方式来显示菜单
我总是要检查访问者看到的页面,并且相同的菜单必须处于活动状态
现在我正在使用,但我希望将来使用
是否将菜单参数存储在db
中
谢谢你的帮助
Peter我使用的是
Sentinel
,它是Sentry
的更新版本,也是开源的。以下是我用于身份验证中间件的内容:
namespace App\Http\Middleware;
use Closure;
class Auth
{
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
*
* @return mixed
*/
public function handle($request, Closure $next)
{
if ($user = Sentinel::check()) {
if ($user->hasAccess(Route::currentRouteAction())) {
view()->share('user', $user);
} else {
return view('errors.forbidden');
}
} else {
return redirect()->guest('/login');
}
return $next($request);
}
}
然后,您的菜单代码可以更改为:
@if ($user->hasAccess('something'))
<li class="{{ (Request::is('panda/something') ? 'open' : '') }}">
<a href="{{ URL::to('panda/flot_charts') }}" class="menu-dropdown">
<span class="menu-text">Menu 1</span><i class="menu-expand"></i>
</a>
<ul class="submenu">
@if ($user->hasAccess('school'))
<li class="{{ (Request::is('panda/school') ? "active" : '') }}">
<a href="{{ route('school') }}"><i class="menu-icon fa fa-cogs"></i><span class="menu-text">Submenu</span></a>
</li>
@endif
</ul>
</li>
@endif
@if($user->hasAccess('something'))
@if($user->hasAccess('school'))
-
@恩迪夫
@恩迪夫
不过,这只是一个小小的变化。你可能想看看哪一个似乎是最受欢迎的。为什么你认为这是错误的?此外,这里的中间件类没有太大区别,因为它们旨在过滤http请求。这段代码很有效,但我希望有一个更简单的解决方案。谢谢您的帮助。我会尝试哨兵和含咖啡因的菜单:)