我想在侧边栏中生成一个动态菜单,并与Laravel 5.1中的所有视图共享。
类似:
- Marks Module
- Langosh Topic
- Content 1
- Content 2
-Nitzsche Topic
- Content 3
- Rolfson Module
尽管所有这些元素都属于另一个名为课程的实体,我可以在顶部菜单中选择它(用户可以有多个课程)。
因此,每次我访问"课程"、"模块"、"主题"或"内容"时,他们都需要告诉侧边栏菜单哪个课程是所有孩子的父亲(或祖父)来生成菜单。
在AppServiceProvider中,我有视图编辑器,一切都很好,但我使用会话来获取课程ID,我不喜欢这样做。
我如何将$课程传递给服务提供商,或者有其他更好的方法吗?
实际上,在这种情况下,您不应该尝试将变量传递给服务提供商。如果需要,可以使用Laravel的容器来完成,因为它是全局的,并且在应用程序启动时初始化。
但由于您只是构建菜单,我建议将菜单构建委托给特定的类。在控制器中创建此类的实例并将其传递给视图。调用它的方法,迭代它的属性以获得菜单结构。
如果您有各种应用程序部件提供有关此侧菜单的信息,则可以利用事件将菜单片段聚集在一起。