@php
use App\Models\Menu;
## Ambil semua permission milik user yang sedang login
$permissions = auth()->user()->getAllPermissions();
## Buat array permission untuk user
$userPermissions = [];
foreach ($permissions as $permission) {
$routeMenu = explode('-', $permission->name)[0];
if (!in_array($routeMenu, $userPermissions)) {
$userPermissions[] = $routeMenu;
}
}
## Ambil semua menu berdasarkan permission
$menus = Menu::with([
'children' => function ($query) use ($userPermissions) {
## Hanya child menu dengan akses permission
$query->whereIn('url', $userPermissions)
## Izinkan child menu tanpa URL
->orWhere('url', '#')
## Urutkan child menu
->orderBy('order', 'asc');
}
])
## Pastikan hanya mengambil menu utama (parent menu)
->whereNull('parent_id')
->where(function ($query) use ($userPermissions) {
## Parent menu dengan akses langsung
$query->whereIn('url', $userPermissions)
->orWhere(function ($subQuery) use ($userPermissions) {
## Parent menu dengan url "#"
$subQuery->where('url', '#')
->whereHas('children', function ($childQuery) use ($userPermissions) {
## Pastikan parent punya child yang valid
$childQuery->whereIn('url', $userPermissions)
## Child menu tanpa URL
->orWhere('url', '#');
});
});
})
->orderBy('order', 'asc') // Urutkan parent menu
->get();
@endphp
-
Back
@php $currentRoute = explode('.', request()->route()->getName())[0];@endphp
@foreach ($menus as $menu) -
url != '#' ? route($menu->url.'.index') : '#' }}">
icon }}">{{ $menu->name }}
@if ($menu->children->isNotEmpty())
@foreach ($menu->children as $child)
url != '#' ? route($child->url.'.index') : '#' }}">
{{ $child->name }}
@if ($child->children->isNotEmpty())
@foreach ($child->children as $subChild)
url != '#' ? route($subChild->url.'.index') : '#' }}">
{{ $subChild->name }}
@endforeach
@endforeach
@endif
@endforeach
[*]
@csrf
[url=javascript:;]
Logout
[/url]
< /code>
Моя проблема заключается в том, как установить активное меню /sumenu1 /sumenu2 в моем динамическом меню выше? < /p>
Я пытаюсь установить свой код выше, но не работаю для активного меню. Код выше, но не работает для активного меню.
Я пытаюсь установить свой код выше, но не работаю для активного меню.
Я пытаюсь установить свой код выше, но не работаю для активного меню.>
Подробнее здесь: https://stackoverflow.com/questions/796 ... laravel-11