使用Laravel Eloquent返回多个关系

使用Laravel Eloquent返回多个关系

我有一个名为users的表,而user具有不同的角色,表中的关系

  • 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)

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

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

任何帮助将不胜感激

cad1234 回答:使用Laravel Eloquent返回多个关系

假设您的人际关系正确建立,我认为这应该可行。试试看,让我知道怎么回事:

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

它应该返回给您与特定用户相关的角色集合,其中包含权限资源。为了使此功能正常运行,角色必须具有许多用户

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

本文链接:https://www.f2er.com/3145647.html

大家都在问