From aab35a372225994e25366a5bbdca5de2c48c3484 Mon Sep 17 00:00:00 2001 From: Geriano Date: Sat, 16 Jul 2022 04:30:05 +0700 Subject: [PATCH] create user menus method --- app/Models/User.php | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/app/Models/User.php b/app/Models/User.php index 3461b6d..2e0ecba 100644 --- a/app/Models/User.php +++ b/app/Models/User.php @@ -63,4 +63,21 @@ class User extends Authenticatable protected $appends = [ 'profile_photo_url', ]; + + /** + * @return \Illuminate\Support\Collection + */ + public function menus() + { + return Menu::whereNull('parent_id') + ->where(function (Builder $query) { + $query->whereHas('permissions', function (Builder $query) { + $query->whereIn('permissions.id', $this->permissions->pluck('id')); + + $this->roles->each(fn (Role $role) => $query->orWhereIn('permissions.id', $role->permissions->pluck('id'))); + })->orDoesntHave('permissions'); + }) + ->with('childs') + ->get(); + } }