我在laravel应用程序上有AdminLTE,当管理员用户通过AdminLte登录屏幕登录时,他登录管理面板并访问其页面。没关系,当他打开前端网站时,管理员名称显示在标题上(如下图所示),因为他之前通过管理员登录屏幕登录。
我想要的是他不能登录前台网页。 (以下内容应显示在标题上,如下图所示)。
他需要在前台单独登录。解决方案是什么。
答案 0 :(得分:1)
好的,所以你必须在app.blade.php上创建if和else,从中生成菜单。
@if (!Auth::guest())
@include('admin.includes.normal_header')
@endif
答案 1 :(得分:0)
您需要制作两个中间件,一个是管理中间件,另一个是普通登录用户。 在普通的中间件中,您可以检查用户是否以管理员身份登录。如果以管理员身份登录,则登出他。
答案 2 :(得分:0)
有几种方法可以解决这个问题:
步骤-1:创建角色表(cols:id,role)和Role.php
模型
步骤2:在用户表中添加名为'role_id'
的列
第3步:在User.php
模型上为角色和用户建立关系
用户属于角色
//假设您有两个角色:1->Admin
,2->User
public function role(){
return $this->belongsTo(Role::class);
}
步骤3:在导航中,使用if else条件
@if (!Auth::guest())
@if(auth()->user()->role()->id == 1)
@include('admin.admin_header_nav')
@else
@include('user.normal_header_nav')
@endif
@endif
// you can just use those condition on a link, or create a middleware
//called admin to wrap up the condition( auth()->user()->role()->id == 1 ),
// leaving it up to you