Php Laravel 3表雄辩:关系
我有三张桌子 角色 id``````角色`| 1名工作人员 权限 id````````````Name``````````| 1“管理所有项目” 2“管理客户机” 访问权限 id_权限FK | id_角色FKPhp Laravel 3表雄辩:关系,php,laravel,orm,eloquent,relation,Php,Laravel,Orm,Eloquent,Relation,我有三张桌子 角色 id``````角色`| 1名工作人员 权限 id````````````Name``````````| 1“管理所有项目” 2“管理客户机” 访问权限 id_权限FK | id_角色FK ````````1`````````````````1 ````````2````````````````1 我要一张桌子 角色|权限名称| 员工|管理所有项目管理客户| 这3款车型怎么能做到这一点 class roles extends Model class permissions e
````````1`````````````````1 ````````2````````````````1 我要一张桌子 角色|权限名称| 员工|管理所有项目管理客户| 这3款车型怎么能做到这一点
class roles extends Model
class permissions extends Model
class acces_permissions extends Model
如果我错了,请纠正我,您试图实现的是使用用户角色获取所有权限 最简单的方法是使用
belongtomany
雄辩的关系,在你的角色模型中添加这一点
public function permissions()
{
return $this->belongsToMany('App\Permissions', 'access_permission_table', 'id_role', 'id_permission');
}
这样,当您调用$role->permissions时,您将获得该角色的所有权限。
public function permissions()
{
return $this->belongsToMany('permissions::class', 'access_permissions',
'id_role', 'id_permission');
}
类内角色扩展模型
得到
内部控制器
及
@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:\MYCRM\mycrm\packages\tc\calculator\src\views\permission_pack.blade.php)
但是join查询似乎是正确的好的
public function permissions()
{
return $this->belongsToMany(permissions::class, 'acces_permissions' , 'id_role',
'id_permission');
}
现在它的工作方式与以前不同了,我不知道为什么请更具体地回答你的问题。你想实现什么?这个问题是关于laravel 3还是关于laravel和3个表的?关于laravel 5.6i将使用用户角色获得所有权限是的,我将使用用户角色获得所有权限
public function permissions()
{
return $this->belongsToMany(permissions::class, 'acces_permissions' , 'id_role',
'id_permission');
}