如何在 Laravel 中将变量传递给服务提供者?

2024-01-01

我想在侧边栏中生成一个动态菜单并与 Laravel 5.1 中的所有视图共享。

like:

- Marks Module
    - Langosh Topic
       - Content 1
       - Content 2
    -Nitzsche Topic
       - Content 3
- Rolfson Module

尽管所有这些元素都属于另一个称为course我可以在顶部菜单中选择(用户可以有超过 1 门课程)。

因此,每次我访问课程、模块、主题或内容时,他们都需要告诉侧边栏菜单哪个课程是所有这些孩子的父亲(或祖父)才能生成菜单。

在 AppServiceProvider 中,我有视图编辑器,一切都工作正常,但我正在使用会话来获取课程 ID,但我不喜欢这样的想法。

我如何将 $course 传递给服务提供商,或者有其他更好的方法吗?


实际上,在这种情况下,您不应该尝试将变量传递给服务提供者。如果需要的话,可以使用 Laravel 来完成容器 http://laravel.com/docs/5.1/container,因为它是全局的,并且是在应用程序启动时初始化的。

但由于您只是构建菜单,我建议将菜单构建委托给特定的类。在控制器中创建此类的实例并将其传递给视图。调用它的方法,迭代它的属性来获取菜单结构。

如果您有各种应用程序部分提供有关此侧菜单的信息,您可以使用events http://laravel.com/docs/5.1/events将菜单片段收集在一起。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 Laravel 中将变量传递给服务提供者? 的相关文章

随机推荐