toArray(); $navigationMaster = []; if ($navigations) { // Buat array untuk menyimpan menu utama foreach ($navigations as $navigation) { if ($navigation['parent_id'] == 0) { // Tambahkan menu utama ke $navigationMaster $navigation['children'] = []; // Siapkan array untuk children $navigationMaster[$navigation['id']] = $navigation; } } // Tambahkan submenu ke menu utama yang sesuai foreach ($navigations as $navigation) { if ($navigation['parent_id'] != 0 && isset($navigationMaster[$navigation['parent_id']])) { $navigationMaster[$navigation['parent_id']]['children'][] = $navigation; } } } // Ubah array menjadi list tanpa indeks id $navigationMaster = array_values($navigationMaster); // Transformasi data untuk sesuai dengan format yang diinginkan $formattedNavigation = [ 'items' => array_map(function ($navItem) { return [ 'title' => $navItem['title'], 'path' => $navItem['path'], 'children' => array_map(function ($child) { return [ 'title' => $child['title'], 'path' => $child['path'], 'icon' => $child['icon'], // Asumsikan Anda memiliki field 'icon' di tabel navigasi 'permission' => $child['permission'], ]; }, $navItem['children']), 'icon' => $navItem['icon'], 'permission' => $navItem['permission'], ]; }, $navigationMaster) ]; return response()->json($formattedNavigation); } /** * Show the form for creating a new resource. * @return Renderable */ public function create() { return view('internal::create'); } /** * Store a newly created resource in storage. * @param Request $request * @return Renderable */ public function store(Request $request) { // } /** * Show the specified resource. * @param int $id * @return Renderable */ public function show($id) { return view('internal::show'); } /** * Show the form for editing the specified resource. * @param int $id * @return Renderable */ public function edit($id) { return view('internal::edit'); } /** * Update the specified resource in storage. * @param Request $request * @param int $id * @return Renderable */ public function update(Request $request, $id) { // } /** * Remove the specified resource from storage. * @param int $id * @return Renderable */ public function destroy($id) { // } }