Laravel 3 table Eloquent: relation



我有3个表

角色

id |`````角色```|

1员工

权限

id

1管理所有项目

2管理客户端

访问权限

id_permission FK|id_role FK
````1````

````````2个

我要一张有的桌子

角色|权限名称|

员工|管理所有项目管理客户|

这3款怎么能

class roles extends Model
class permissions extends Model
class acces_permissions extends Model

如果我错了,请纠正我,您试图实现的是使用用户角色获得所有权限。。

最简单的方法是使用belongsToMany雄辩关系,在您的角色模型中添加此

public function permissions()
{
return $this->belongsToMany('AppPermissions', 'access_permission_table', 'id_role', 'id_permission');
}

这样,当您调用$role->permissions时,您将获得该角色的所有权限。

好的,我做了

public function permissions()
{
return $this->belongsToMany(permissions::class, 'acces_permissions' , 'id_role', 
'id_permission');
}

现在它的工作方式与以前不同我不知道为什么

我放入

public function permissions()
{
return $this->belongsToMany('permissions::class', 'access_permissions', 
'id_role', 'id_permission');
}

类内角色扩展模型

获取

$roles=roles::all();

控制器内

@foreach($roles as $role)
$role['permissions']

临时

但不起作用

SQLSTATE[42S02]: Base table or view not found: 1146 Table 
'mycrm.access_permissions' doesn't exist (SQL: select `permissions`.*, 
`access_permissions`.`id_role` as `pivot_id_role`, 
`access_permissions`.`id_permission` as `pivot_id_permission` from 
`permissions` inner join `access_permissions` on `permissions`.`id` = 
`access_permissions`.`id_permission` where `access_permissions`.`id_role` = 
1) (View: 
F:MYCRMmycrmpackagestccalculatorsrcviewspermission_pack.blade.php)

但是join查询似乎是正确的

最新更新