我有多个用户与多个权限(管理员和用户)。例如: admin可以看到侧边栏a,b,c,但用户只能看到侧边栏d,e,f。
你能根据权限在adminlte.php加载菜单吗?我将权限存储在User表(isAdmin,isUser)的permission列中谢谢
Adminlte.php中的菜单数组格式:
'menu' => [
[
'text' => 'Dashboard',
'url' => '/dashboard',
'icon' => 'dashboard',
],
],
我找到的唯一解决方案是用于普通的php http://seegatesite.com/how-to-create-user-permissions-view-to-dynamic-sidebar-menu-adminlte/。
我更喜欢使用内置adminlte.php的原生laravel解决方案
发布于 2018-07-01 23:38:00
我认为使用数据库是明智的选择。但我们可以避免使用原始数据库查询,而使用Laravel内置。
在sidebar.blade.php (或您拥有的其他模板/视图文件)中,您可以从数据库获取权限,然后使用它们显示您的特定菜单,如下所示:
@if(Auth::user()->permission_1)
<li><a href=""><i class="fa fa-group"></i> menu-item_1</a></li>
@endif
@if(Auth::user()->permission_2)
<li><a href=""><i class="fa fa-tasks"></i> menu-item_2</a></li>
@endif
发布于 2018-06-09 04:39:48
我已经集成了Laravel-AdminLTE
我的项目。使用此插件的权限可能如下所示:
'can' => 'add-blog-post'
示例如下:
'menu' => [
'MAIN NAVIGATION',
[
'text' => 'Pages',
'url' => 'admin/pages',
'icon' => 'file',
'can' => 'add-blog-post'
],
],
发布于 2020-01-06 08:51:34
早上好。
您必须实现盖茨。菜单选项之一是“can”。使用它,您可以创建一个Gate,这将集中您的权限规则。
举个例子:
/app/config/adminlte.php
[
'text' => 'Por Chassi',
'url' => 'consultarporchassi',
'icon' => 'search',
'icon_color' => 'success',
'can' => 'consulta-chassi'
],
Gate: /app/Providers/ AppServiceProvider.php : Gate必须部署在AppServiceProvider.php“引导”方法中
/**
* Bootstrap any application services.
*
* @return void
*/
public function boot()
{
$this->register();
\Gate::define('consulta-chassi', function ($user) {
if ($user->priv_admin == 'Y') {
return true;
}
return false;
});
}
祝你好运,待会见
有关更多信息,请访问以下链接:https://laravel.com/docs/5.7/authorization
https://stackoverflow.com/questions/45173016
复制相似问题