Laravel 关系过滤器 company_id
Laravel relationship filter by company_id
我正在做一个具有自定义权限功能的 laravel api。
这是我的表格结构:
User
id | email | password
Company
id | companyName
Permissions
id | name
User_has_permissions
user_id | company_id | permission_id
我在模型中使用以下代码获取用户和权限:
public function permissions() {
return $this->belongsToMany(Permission::class, 'user_has_permission', 'user_id', 'permission_id');
}
在控制器中:
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 有关。
有人知道我怎样才能得到这个结果吗?
欢迎任何想法。
非常感谢。
您可以通过包含键值语法作为参数进行查询。在 BelongsToMany
中,它与枢轴 table 内连接,这使得可以在 comapny_id
.
上添加条件
return User::with(['permissions' => function ($query) use ($company) {
$query->where('user_has_permission.company_id', $company->id);
}])->find($id);
我正在做一个具有自定义权限功能的 laravel api。 这是我的表格结构:
User
id | email | password
Company
id | companyName
Permissions
id | name
User_has_permissions
user_id | company_id | permission_id
我在模型中使用以下代码获取用户和权限:
public function permissions() {
return $this->belongsToMany(Permission::class, 'user_has_permission', 'user_id', 'permission_id');
}
在控制器中:
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 有关。
有人知道我怎样才能得到这个结果吗?
欢迎任何想法。
非常感谢。
您可以通过包含键值语法作为参数进行查询。在 BelongsToMany
中,它与枢轴 table 内连接,这使得可以在 comapny_id
.
return User::with(['permissions' => function ($query) use ($company) {
$query->where('user_has_permission.company_id', $company->id);
}])->find($id);