@extends('layouts.app') @section('judul', 'Manajemen Menu') @section('subjudul', 'Susunan menu & submenu sidebar dan role yang dapat melihatnya') @section('aksi-header') @endsection @section('konten') @php $labelJenis = ['header' => ['Judul bagian', 'secondary'], 'grup' => ['Grup', 'info'], 'menu' => ['Menu', 'primary']]; $barisMenu = function ($m, $anak = false) { return ['id' => $m->id, 'jenis' => $m->jenis, 'judul' => $m->judul, 'ikon' => $m->ikon, 'route' => $m->route, 'id_induk' => $m->id_induk, 'roles' => $m->roles->pluck('id')->all(), 'terkunci' => $m->terkunci]; }; @endphp
Menu hanya mengatur tampilan sidebar. Hak membuka halaman tetap ditentukan permission role, jadi menu yang ditampilkan untuk role yang tidak berhak akan berujung "Akses ditolak". Grup tampil bila ada submenu yang tampil; judul bagian tampil bila ada menu di bawahnya.
@foreach ($pohon as $m) @foreach (collect([$m])->concat($m->jenis === 'grup' ? $m->anak : []) as $baris) @php($anak = $baris->id_induk !== null) @endforeach @endforeach
MenuHalamanRole yang melihatAksi

Pratinjau sidebar

@foreach ($pratinjau as $idRole => $menuRole)
    @forelse ($menuRole as $item) @if ($item['jenis'] === 'header')
  • {{ $item['judul'] }}
  • @else
  • {{ $item['judul'] }} @if ($item['jenis'] === 'grup')
      @foreach ($item['anak'] as $anak)
    • {{ $anak['judul'] }}
    • @endforeach
    @endif
  • @endif @empty
  • Tidak ada menu untuk role ini.
  • @endforelse
@endforeach

Pengguna dengan beberapa role melihat gabungan menunya.

@endsection @push('js') @endpush