laravel-adminlteのconfig/adminlte.phpをAppServiceProviderで動的に変更する

laravel-adminlteのconfig/adminlte.phpをAppServiceProviderで動的に変更する

2021年12月8日
ネット、計算機のお伴

larave-adminlte3で写真スタジオ用の事務ページを作ってるのだが、設定ファイルがconfig/以下にあるため、静的設定しか出来ない。
config関数で呼び出し可能な値は,config/内ファイルを一括で処理して取得されているため、残念ながらconfig内でconfig/内に設定されている他の値を使うことが出来ないし、ミドルウエア風に別変数を加えることも不可能であるが、

Menu Configuration · jeroennoten/Laravel-AdminLTE Wiki · GitHub

Easy AdminLTE integration with Laravel. …
github.com

にあるように、実装されているサービス・プロバイダを使えば設定できる。

php - Adminlte in Laravel sidebar update label on runtime - Stack Overflow

This is my menu array format in adminlte…
stackoverflow.com

AppServiceProviderで、laravel-adminlteのBuidingMenuクラスを呼び出し値を追加するというやりかた。これだと、config/内で定義した変数も含めて利用が可能となる。

public function boot(Dispatcher $events)
{
$events->listen(BuildingMenu::class, function (BuildingMenu $event) {
$event->menu->add('MAIN NAVIGATION');
$event->menu->add([
'text' => myConfig::title(),//他の自作クラスをコールした戻り値
'url' => config('my.blog_url'),//configの自作定義の値
]);
});
}

みたいな感じ。ただしこれはmenu配列のみ有効。
(vendor/jeroennoten/laravel-adminlte/src/AdminLteServiceProvider.phpを見る限り)
いずれにせよサービスプロバイダ重要だなあ。