我有三个模型用户
、角色
和权限
。这些模型与其表之间存在复杂但众所周知的关系。
表及其列:
因此,每个用户只有一个角色,每个角色都有许多权限。
<?php
class User
{
public function role()
{
return $this->belongsTo(Role::class);
}
public function permissions()
{
return $this->hasManyThrough(Permission::class,Role::class);
}
}
class Role
{
public function users()
{
return $this->hasMany(User::class);
}
public function permissions()
{
return $this->belongsToMany(Permission::class);
}
}
class Permission
{
public function roles()
{
return $this->belongsToMany(Role::class);
}
public function users()
{
return $this->hasManyThrough(User::class,Role::class);
}
}
我可以访问
除了
返回sql错误:
SQLSTATE[42S22]: Column not found: 1054 Unknown column 'roles.permission_id' in 'field list' (SQL: select `users`.*, `roles`.`permission_id` as `laravel_through_key` from `users` inner join `roles` on `roles`.`id` = `users`.`role_id` where `roles`.`permission_id` = 1)
但为什么呢?
你能这样试试吗:
public function users()
{
return $this->hasManyThrough(
User::class, // The model to access to
PermissionRole::class, // The intermediate table that connects the User with the Role.
'permission_id', // The column of the intermediate table that connects to this model by its ID.
'role_id', // The column of the intermediate table that connects the Role by its ID.
'id', // The column that connects this model with the intermediate model table.
'role_id' // The column of the Users table that ties it to the Roles.
);
}
我找到了这篇文章。
如果您将其与您的表格进行比较,可能会如下所示:
audio_files
表是你的用户
播客
表是您的角色
订阅
表是您的permission_role
用户
表是您的权限
也许这很混乱,但请让我知道这是否有效。
有些企业会对向用户发送的营销内容进行严格的管理——基层的运营或营销经理拟定的活动必须经过上级管理者的审批,方可生效执行。为此,诸葛的智能触达中提供了基于用户角色的触达活动权限管理,以支撑上述的企业需求。 如果您的团队需要使用权限控制,可通过以下步骤开启使用: 开启权限控制:智能触达的权限控制默认是关闭的,需要开启后方能使用; 分配用户角色:为团队成员分别分配设定「管理员」和「运营人员」角色; 开始
下午好.如何在不使用不同的OAUTH2服务的情况下,为一个应用程序中的特定实体(类似于RBAC/ABAC)的特定控制器配置用户的权限和角色? 还有一个名为Project的实体。用户可能是许多项目的成员。有一些项目用户角色:PROJECT_ADMIN、PROJECT_EDITO、PROJECT_USER。每个项目角色都可以拥有自己的权限(权限),如向项目添加用户、编辑项目等。所有角色配置都存储在'P
以下是权限、角色和permission\u角色的表结构 权限: id名称 id名称 permission\u角色: role\u id,permission\u id 这里permission_role是我的数据透视表。 在我的前端,我设置了这样的东西, welcome.blade.php 在我的控制器中。php 角色php 我无法将数据保存到数据透视表中。 我在php artisan tinke
6.0 版本开始,管理员可以在用户管理界面为一个用户赋予一个角色,不同角色可以配置不同权限,目前支持 10 种权限。 6.1 版本开始,我们添加了一个新的权限 relo_quota(角色配额),该权限用来给某个用户的角色设置空间配额。例如,我们可以通过添加 'role_quota': '100g' 为 employee 角色设置100GB的空间配额,同时其他用户还是使用默认的空间配额。 Seafi
因此,在我们的Laravel应用程序中有两个角色(internet客户端和管理员)。下面是DB模式 我们想允许www.site。com/登录路径,仅记录具有“客户端”角色的用户。 请注意,一旦用户登录并强制注销,我们不想检查角色。 谢谢
我有3个用户角色:管理员、客户和员工。 登录后,每个角色将重定向到特定的仪表板,例如:-管理员:网站。com/admin-客户:网站。com/客户-员工:网站。通讯员/雇员 此时,无论我使用哪个用户角色,都可以通过这些网址访问所有内容。 限制客户打开admin的最简单方法是什么 Laravel版本5.2.45 PHP版本7.2我正在使用共享托管提供商。谢谢你们