[英]Laravel - checking record existence
目前,我的數據庫表定義如下:
site_roles-包含不同的角色
site_user_roles-將用戶鏈接到許多角色
site_permission_modules-包含不同的訪問級別[例如, 查看管理員控件,禁止用戶]
site_role_permissions-將權限模塊鏈接到角色
正確定義了我在laravel中的模型,以查詢這些多對多關系。 在代碼中,我想檢查用戶是否具有鏈接到他的特定權限模塊。
為了更好地理解,這也是我的模型:
用戶
public function SiteRoles()
{
return $this->belongsToMany('App\SiteRole', 'site_user_roles', 'users_id', 'site_roles_id');
}
SiteRole
public function Users()
{
return $this->belongsToMany('App\User', 'site_user_roles', 'site_roles_id', 'user_id');
}
public function SitePermissionModules()
{
return $this->belongsToMany('App\SitePermissionModule', 'site_role_permissions', 'site_roles_id', 'site_permission_modules_id');
}
SitePermissionModule
public function SiteRoles()
{
return $this->belongsToMany('App\SiteRole', 'site_role_permissions', 'site_permission_modules_id', 'site_roles_id');
}
這是我目前所做的:
Auth::User()->SiteRoles()->with('SitePermissionModules')->get()
with()關鍵字檢索與每個角色關聯的嵌套權限數組。
我需要檢查用戶是否具有鏈接到他的特定權限模塊。
laravel最好的方法是什么?
編輯:
基本上,我只是在問將2對多對多關系鏈接起來的最佳方法是什么。
Auth::User()->SiteRoles()->with(['SitePermissionModules' => function ($query) {
$query->where('site_role_permissions','=','admin');
//use where as per your requirment.
}])->get();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.