雄辩的数据透视表3连接到另一个表

时间:2018-07-30 12:44:58

标签: php laravel eloquent

我在Laravel应用程序中设置了以下模型/表格;

用户
    id
    profile_id

个人资料
    id
    说明

模块
    id
    说明

子模块
    id
    说明
    module_id

个人资料权限
    id
    profile_id
    submodule_id
    Permission_id

用户只有一个个人资料
一个模块有很多子模块
子模块具有许多权限

我仍在尝试用雄辩的口才找出来。如何获取profile_id 1格式的数组?:
 [module.id] [submodule.id] [permission.id]

示例输出
[1] [10] [1]
[1] [10] [2]
[1] [10] [3]

1 个答案:

答案 0 :(得分:0)

您可以像这样在hasMany模型和Profile之间定义ProfilePermission关系

个人资料模型

public function profilePermissions(){
    return $this->hasMany(ProfilePermission::class, 'profile_id');
}

现在您可以像这样获取它

$profile = Profile::with('profilePermissions')->find(1);
foreach($profile->profilePermissions as $pp){
   echo $pp->profile_id.'-'. $pp->submodule_id .'-'. $pp->permission_id
}

注意:如果您在belongsTo模型中为每个外键ProfilePermissionprofile_idsubmodule_id定义permission_id关系,则您也可以访问其模型。