我正在做一個具有自定義權限功能的 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 相關。
任何人都知道我怎樣才能得到這個結果?
歡迎任何想法。
非常感謝。
uj5u.com熱心網友回復:
您可以通過將鍵值語法作為引數來使用包含進行查詢。在 中BelongsToMany,它與資料透視表進行內部連接,這使得可以在comapny_id.
return User::with(['permissions' => function ($query) use ($company) {
$query->where('user_has_permission.company_id', $company->id);
}])->find($id);
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/343490.html
