我正在制作一个laravel网站。我希望有一个动态标头,它在每个页面上都是持久的(就像堆栈溢出在标题顶部有通知栏一样。它包含动态内容)。
有没有办法可以构建这个动态标头内容并将其包含在每个刀片模板中,而无需从每个控制器内部构建它并将其传递给该控制器正在服务的View?我有很多页面和控制器,如果我必须进入每个控制器方法以包含此代码来构建标题然后将标题内容传递到视图中,它似乎不正确。
我知道一种方法可以在每个页面加载时简单地在标题中填充ajax,但这似乎效率低下,因为我宁愿让侧边栏内容同时与页面一起提供加载页面,然后使用ajax获取标题内容。
我也想过,或许我可以从我自己的自定义BaseController类中调用所有控制器扩展的东西,但是,仍然会让我手动将变量传递给每个View :: make()。
答案 0 :(得分:0)
结果我正在寻找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());
});