2

在用户登录到我正在开发的应用程序后,根据他们的角色,他们需要呈现一组不同的菜单项。

我创建了一个名为“menu”的过滤器,在其中组装菜单项。我有这个在我routes.php运行我的过滤器之前运行我的过滤器:

Route::group(array('before' = 'auth|menu'), function()...

在我的菜单过滤器的末尾,我有这个让菜单类在每个视图中都可以访问:

View::share('menu', $menu);

为了实际构建菜单,我正在使用Laravel Menu bundle,但我还没有找到从我的控制器动态设置菜单项的“活动”标志的最佳方法。

菜单包检查 URL 以设置活动标志(这对我不起作用,因为它似乎将路径名与 进行比较URI::current(),只有后者返回带有域、端口和所有内容的完整 URL,所以它永远不会匹配)但我会宁愿以某种方式$menu从我的控制器中访问该类,以便我可以直接修改它。

我该怎么做?当一个人使用注册表(又名美化全局变量)时会出现这种情况吗?

4

1 回答 1

2

会给你基本的想法,你将准备好继续前进。使用 IoC 容器将菜单对象实例化为单例,然后从控制器或视图中访问它。另一种注入菜单的方法是使用 View Composer。你可以深入了解 Laravel 文档和源代码。

于 2012-10-13T21:55:01.457 回答