Php 需要具有laravel角色的指南
我想用Php 需要具有laravel角色的指南,php,laravel-5,Php,Laravel 5,我想用Laravel 5.4开始一个新项目。过去,我曾为不同的用户类型使用不同的表,但对于这个项目,我想为所有类型的用户使用默认的用户表,并将他们的访问权限(角色)分开,我不确定如何做,这就是为什么我需要指南的原因 PS:对于那些可能想要获得密码的朋友,现在还没有密码!在开始编码之前我需要线索,所以请不要评论垃圾邮件 致以问候。假设一个用户可以扮演多个角色,那么要做到这一点。。首先,你必须有3张桌子tbl_用户,tbl_用户角色和tbl_角色,其中 tbl_用户 id username pass
Laravel 5.4
开始一个新项目。过去,我曾为不同的用户类型使用不同的表,但对于这个项目,我想为所有类型的用户使用默认的用户
表,并将他们的访问权限(角色)分开,我不确定如何做,这就是为什么我需要指南的原因
PS:对于那些可能想要获得密码的朋友,现在还没有密码!在开始编码之前我需要线索,所以请不要评论垃圾邮件
致以问候。假设一个用户可以扮演多个角色,那么要做到这一点。。首先,你必须有3张桌子tbl_用户
,tbl_用户角色
和tbl_角色
,其中
tbl_用户
id
username
password
someotherfields
id
user_id
role_id
id
rolename
待定用户角色
id
username
password
someotherfields
id
user_id
role_id
id
rolename
待定角色
id
username
password
someotherfields
id
user_id
role_id
id
rolename
然后在您的模型用户中
必须为角色分配关系
public function roles()
{
return $this->belongsToMany('App\Role', 'user_roles', 'user_id', 'role_id')->withTimestamps();
}
现在你有了角色。。现在,如何根据角色设置页面限制。。你要做的是为它准备一个中间件。。以下是方法:
在终端运行中创建一个称为RolePermission的中间件
php artisan make:middleware RolePermission
然后在它的内容
public function handle($request, Closure $next, $roles)
{
$roles = explode('|',$roles);
$userRoles = Auth::user()->roles;
foreach($userRoles as $role)
{
if(in_array($role->id, $roles))
{
return $next($request);
}
}
// Redirect
return redirect()->back();
}
基本上,它所做的是检查授权用户列表角色是否在允许使用页面的角色中
然后在路由文件中添加对页面的限制,例如,假设角色管理员的id为1,版主id为2。SimpleUser id:3则页面用户管理要求您是管理员才能输入,然后执行以下操作:
// Group of route that will only be accessible for Users with Level = 1 (Administrator)
Route::group( ['middleware' => 'rolePermissions:1'], function(){
Route::get('/users',['as'=>'users', 'uses'=>'PagesController@users']);
}
// Multiple roles for a page
Route::group( ['middleware' => 'rolePermissions:1|2|3|4'], function(){
// routes here
}
此外,该中间件还不能工作。。您必须编辑内核并将其添加到受保护的$RouteMiddle软件下
'rolePermissions' => \App\Http\Middleware\RolePermissions::class,
一切都准备好了,干杯。。您现在对经过身份验证的用户角色有页面限制。请至少进行谷歌搜索。Ref:@DavidMakogon正如我所说,询问提供代码
是垃圾评论,因为引导问题不是问题解决者的问题,所以显然人们还没有要求它的代码<代码>有些人只是为了在这个网站上排名而发表这样的评论
@Deamonyowh嗨,谢谢你的评论,现在我让注册用户成为默认的用户角色,而不是管理员或超级管理员等?这取决于你,伙计。。你可以给一个默认角色,或者管理员可以给用户角色,或者两者都给。我知道这可能发生。我的问题是如何?我遇到的另一个问题是,我无法通过角色名为正确的用户获取正确的部分。我尝试了这个方法,但没有成功@if(Auth::user()->role='isAdmin')欢迎回到管理员@否则欢迎用户回来@endif