Deskripsi Masalah
Setelah migrasi dari Laravel 9 ke Laravel 13, menu sidebar hanya menampilkan 2 item (Dasbor dan Dasbor Demografi). Menu dari tabel eam (Profile Kependudukan, Statistik, Laporan, Pengaturan, dll) tidak di-load ke sidebar.
Root Cause
Di Laravel 13, event auto-discovery tidak menemukan BuildingMenu event dari package vendor (jeroennoten/laravel-adminlte).
MenuListener yang seharusnya load menu dari tabel eam ke sidebar melalui BuildingMenu event tidak pernah di-trigger.
Bukti
`�ash
$ php artisan event:list | grep -i Building
(kosong - BuildingMenu tidak terdaftar)
`
Setelah cache dibersihkan:
`�ash
$ php artisan event:clear
$ php artisan event:cache
$ php artisan event:list | grep -i Building
Tetap kosong
`
Solusi
Register manual MenuListener di AppServiceProvider::boot():
`php
use App\Listeners\MenuListener;
use Illuminate\Support\Facades\Event;
use JeroenNoten\LaravelAdminLte\Events\BuildingMenu;
public function boot(): void
{
// ... existing code ...
->registerMenuListener();
}
private function registerMenuListener(): void
{
Event::listen(BuildingMenu::class, MenuListener::class);
}
`
Lingkungan
- OpenKab Version: v2607.0.0
- Laravel: 13.x
- jeroennoten/laravel-adminlte: v3.16.0
- PHP: 8.x
Catatan
Masalah ini terjadi karena Laravel 13 tidak auto-discover events dari package vendor. Di Laravel 9, event discovery bekerja untuk package vendor. Di Laravel 13, hanya events di namespace App\Events yang di-discover otomatis.
Deskripsi Masalah
Setelah migrasi dari Laravel 9 ke Laravel 13, menu sidebar hanya menampilkan 2 item (Dasbor dan Dasbor Demografi). Menu dari tabel eam (Profile Kependudukan, Statistik, Laporan, Pengaturan, dll) tidak di-load ke sidebar.
Root Cause
Di Laravel 13, event auto-discovery tidak menemukan BuildingMenu event dari package vendor (jeroennoten/laravel-adminlte).
MenuListener yang seharusnya load menu dari tabel eam ke sidebar melalui BuildingMenu event tidak pernah di-trigger.
Bukti
`�ash
$ php artisan event:list | grep -i Building
(kosong - BuildingMenu tidak terdaftar)
`
Setelah cache dibersihkan:
`�ash
$ php artisan event:clear
$ php artisan event:cache
$ php artisan event:list | grep -i Building
Tetap kosong
`
Solusi
Register manual MenuListener di AppServiceProvider::boot():
`php
use App\Listeners\MenuListener;
use Illuminate\Support\Facades\Event;
use JeroenNoten\LaravelAdminLte\Events\BuildingMenu;
public function boot(): void
{
// ... existing code ...
->registerMenuListener();
}
private function registerMenuListener(): void
{
Event::listen(BuildingMenu::class, MenuListener::class);
}
`
Lingkungan
Catatan
Masalah ini terjadi karena Laravel 13 tidak auto-discover events dari package vendor. Di Laravel 9, event discovery bekerja untuk package vendor. Di Laravel 13, hanya events di namespace App\Events yang di-discover otomatis.