簡體   English   中英

Laravel-檢查記錄是否存在

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM