create user menus method

This commit is contained in:
Geriano
2022-07-16 04:30:05 +07:00
parent 8e687de2d9
commit aab35a3722

View File

@@ -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();
}
}