dimanche 13 mars 2016

Laravel - checking record existence

Currently my db tables are defined as below:

site_roles - Contains different roles

site_user_roles - Links Users to many roles

site_permission_modules - Contains different access levels [eg. view admin controls, ban users]

site_role_permissions - Links permission modules to roles

My models in laravel are correctly defined to query these many to many relations. In code I want to check if a user has a certain permission module linked to him.

For better understanding, here are my models as well:

User

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');
    }

Here is what I currently did:

Auth::User()->SiteRoles()->with('SitePermissionModules')->get()

The with() keyword retrieves a nested array of permissions associated with each role.

I need to check if the user has a specific permission module linked to him.

What would be the best laravel way to do this?



via Chebli Mohamed

Aucun commentaire:

Enregistrer un commentaire