[英]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();
它应该向您返回与特定用户相关的角色集合,其中包含Permissions和Resources 。 当然,为此,角色必须有许多用户。
此处记录了此技术: https://laravel.com/docs/5.8/eloquent-relationships#querying-relationship-existence
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.