繁体   English   中英

返回与 Laravel Eloquent 的多个关系

[英]Return multiple relationships with Laravel Eloquent

在此处输入图像描述 我有一个名为 users 的表,用户在表中的关系具有不同的角色

  • role_users (id,user_id,role_id)

现在一个角色对不同的资源有不同的权限

  • permissions(id,name) (permissions: edit,create)
  • resources(id,name) (resources: post,comment,user)

角色与权限的关系

  • role_resource_permissions (id,role_id,permission_id,resource_id)

我想要的是做一个 Eloquent 查询来搜索用户资源的可用权限。

我将如何为此定义模型中的关系。

任何帮助将不胜感激

假设您的关系是正确创建的,我认为这应该有效。 试试看,让我知道它是怎么回事:

$user_id = 1;
$user_data = Roles::whereHas('users', function (Builder $query) use ($user_id) {
        $query->where('id', $user_id);
    })->with(['permissions', 'resources'])->get();

它应该向您返回与特定用户相关的角色集合,其中包含PermissionsResources 当然,为此,角色必须有许多用户

此处记录了此技术: https://laravel.com/docs/5.8/eloquent-relationships#querying-relationship-existence

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM