私が開発中のアプリにユーザーがログインした後、ユーザーの役割に基づいて、異なるメニュー項目のセットを提示する必要があります。
メニュー項目を組み立てる「メニュー」というフィルターを作成しました。routes.php
すべての前にフィルターを実行するために、これを持っています:
Route::group(array('before' = 'auth|menu'), function()...
私のメニューフィルターの最後に、すべてのビューでメニュークラスにアクセスできるようにするためにこれを持っています:
View::share('menu', $menu);
実際にメニューを構築するためにLaravel Menu bundleを使用していますが、コントローラーからメニュー項目の「アクティブ」フラグを動的に設定する最良の方法をまだ見つけていません。
メニュー バンドルは、URL を調べてアクティブ フラグを設定します (パス名を と比較しているように見えるので、これは機能しませんURI::current()
。後者のみがドメイン、ポート、およびすべてを含む完全な URL を返すため、一致することはありません)。コントローラー内から何らかの方法で$menu
クラスにアクセスして、直接変更できるようにしたいのです。
どうすればいいですか?この状況は、レジストリ (栄光化されたグローバル変数) を使用するときですか?