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

时间:2015-12-11 11:29:02

标签: php laravel relationship service-provider

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

像:

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

虽然所有这些元素都属于另一个名为 course 的实体,我可以在Top菜单中选择(用户可以有超过1个课程)。

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

在AppServiceProvider中我有查看作曲家和一切正常,但我正在使用会话来获取课程ID,我不想知道。

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

1 个答案:

答案 0 :(得分:1)

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

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

如果您有各种应用程序部件提供有关此侧边菜单的信息,您可以使用events一起收集菜单部分。