From eaae8415ef132ea74f936c5c8285ed18a61217de Mon Sep 17 00:00:00 2001 From: Afila Date: Wed, 8 Jul 2026 00:27:42 +0700 Subject: [PATCH] fix: register MenuListener manually for Laravel 13 compatibility In Laravel 13, event auto-discovery does not find BuildingMenu event from vendor package (jeroennoten/laravel-adminlte). This causes the sidebar menu to only show 2 items (Dasbor and Dasbor Demografi) instead of the full menu from team configuration. Fixes #1087 --- app/Providers/AppServiceProvider.php | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/app/Providers/AppServiceProvider.php b/app/Providers/AppServiceProvider.php index 49d97980..26e4d481 100644 --- a/app/Providers/AppServiceProvider.php +++ b/app/Providers/AppServiceProvider.php @@ -4,12 +4,14 @@ use App\Http\Transformers\IdentitasTransformer; use App\Http\Transformers\SettingTransformer; +use App\Listeners\MenuListener; use App\Models\Identitas; use App\Models\Setting; use Illuminate\Cache\RateLimiting\Limit; use Illuminate\Http\Request; use Illuminate\Support\Facades\App; use Illuminate\Support\Facades\DB; +use Illuminate\Support\Facades\Event; use Illuminate\Support\Facades\File; use Illuminate\Support\Facades\RateLimiter; use Illuminate\Support\Facades\URL; @@ -19,6 +21,7 @@ use App\Observers\VisitorObserver; use Exception; use Illuminate\Support\Facades\Log; +use JeroenNoten\LaravelAdminLte\Events\BuildingMenu; use Shetabit\Visitor\Models\Visit; class AppServiceProvider extends ServiceProvider @@ -43,7 +46,8 @@ public function boot(): void $this->bootHttps(); $this->addValidation(); $this->addLogQuery(); - + $this->registerMenuListener(); + try { $this->shareViewIdentitas(); } catch (Exception $e) { @@ -55,6 +59,15 @@ public function boot(): void } } + /** + * Register MenuListener for BuildingMenu event. + * Required for Laravel 11+ where vendor event auto-discovery may not work. + */ + private function registerMenuListener(): void + { + Event::listen(BuildingMenu::class, MenuListener::class); + } + private function shareViewIdentitas(): void { // Share data ke semua view (termasuk Pest browser test context)