So richten Sie Menü in Laravel 11 einPhp

PHP-Programmierer chatten hier
Anonymous
 So richten Sie Menü in Laravel 11 ein

Post by Anonymous »

Dies ist meine Seitenleiste.blade.php < /p>

Code: Select all





[url=index.html][i][/url]

[/i]

[i] [/i]





[url=index.html]

[i][/i]

[/url]



@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




[i][/i]

[list]
[*]

Back[i][/i]

@php $currentRoute = explode('.', request()->route()->getName())[0];@endphp

@foreach ($menus as $menu)
[*]
[i][/i]
[url={{ $menu-]url != '#' ? route($menu->url.'.index') : '#' }}">
[i]icon }}">[/i]{{ $menu->name }}
[/url]
@if ($menu->children->isNotEmpty())

@foreach ($menu->children as $child)

[url={{ $child-]url != '#' ? route($child->url.'.index') : '#' }}">
{{ $child->name }}
[/url]
@if ($child->children->isNotEmpty())

@foreach ($child->children as $subChild)

[url={{ $subChild-]url != '#' ? route($subChild->url.'.index') : '#' }}">
{{ $subChild->name }}
[/url]

@endforeach
[/list]
@endif

@endforeach

@endif

@endforeach

[*]
[i][/i]

@csrf

[url=javascript:;]
[i][/i] Logout
[/url]




[i][/i]







Mein Problem ist, wie ich das aktive Menü/Submenu1/Submenu2 in meinem dynamischen Menü oben besiedelt? mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm und .mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmMMMPI.>

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post