首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >按company_id过滤Laravel关系

按company_id过滤Laravel关系
EN

Stack Overflow用户
提问于 2021-10-31 01:31:41
回答 1查看 31关注 0票数 1

我正在做一个具有自定义权限功能的laravel api。这是我的表格结构:

代码语言:javascript
复制
User
id | email | password

Company
id | companyName

Permissions
id | name

User_has_permissions
user_id | company_id | permission_id

我正在使用模型中的以下代码获取用户和权限:

代码语言:javascript
复制
public function permissions() {
    return $this->belongsToMany(Permission::class, 'user_has_permission', 'user_id', 'permission_id');
}

在控制器中:

代码语言:javascript
复制
public function show($company_id, $user_id) {
    //now I need return only permissions related with $company_id
    return User::with(['permissions'])->find($User_id);
}

现在,我需要获得用户和您的权限,但,只有相关的company_id。

有谁知道我怎么才能得到这个结果?

任何想法都是受欢迎的。

非常感谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-10-31 01:38:19

通过将键值语法作为参数,可以使用includes进行查询。在BelongsToMany中,它与数据透视表进行内部连接,这使得在comapny_id上添加条件成为可能。

代码语言:javascript
复制
return User::with(['permissions' => function ($query) use ($company) { 
    $query->where('user_has_permission.company_id', $company->id);
}])->find($id);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69783325

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档