如何在 laravel 中制作全局 header

How to make a global header in laravel

我正在制作一个 laravel 网站。我想要一个动态的 header,它在每个页面上都是持久的(就像堆栈溢出如何在 header 的顶部有他们的通知栏一样。它包含动态内容)。

有没有一种方法可以构建此动态 header 内容并将其包含在每个 blade 模板中,而无需从每个控制器内部构建它并将其传递给该控制器的视图上菜了吗?我有很多页面和控制器,如果我必须进入每个控制器方法以包含此代码以构建 header 然后将 header 内容传递到查看。

我知道一种方法是在每次加载页面时让 ajax 填写 header,但这似乎效率不高,因为我宁愿提供边栏内容同时打开页面而不是加载页面,然后使用 ajax.

获取 header 内容

我还想也许我可以从我自己的自定义 BaseController class 中调用一些东西,所有控制器都从中扩展,但是,这仍然需要我将一个变量传递给每个 View::make( ) 手动。

原来 View Composers 正是我要找的:http://laravel.com/docs/4.2/responses#view-composers

// define a variable that will always be present inside of your header partial View::composer('_partials.header', function($view) { $view->with('count', User::count()); });