Php 如何在主刀片模板中加载方法?
我使用的是laravel的刀片模板,我的所有页面都有一个主模板。在主模板中,我有一个顶部栏和一个侧栏。我想在侧边栏中加载一些内容。但我不知道如何用一种更简单的方式来做。现在,我在我拥有的每个控制器中调用该方法(我希望在侧边栏中显示该方法),如下所示:Php 如何在主刀片模板中加载方法?,php,templates,laravel,blade,Php,Templates,Laravel,Blade,我使用的是laravel的刀片模板,我的所有页面都有一个主模板。在主模板中,我有一个顶部栏和一个侧栏。我想在侧边栏中加载一些内容。但我不知道如何用一种更简单的方式来做。现在,我在我拥有的每个控制器中调用该方法(我希望在侧边栏中显示该方法),如下所示: View::make()->with('data_to_load_in_sidebar',$data_to_load_in_sidebar) 我如何才能只加载一次,而不是每次生成视图时加载一次?我会在构造函数中共享顶部栏和侧栏数据(最好是在
View::make()->with('data_to_load_in_sidebar',$data_to_load_in_sidebar)
我如何才能只加载一次,而不是每次生成视图时加载一次?我会在构造函数中共享顶部栏和侧栏数据(最好是在某些BaseController的构造函数中,其他控制器会扩展)
这就是视图编写器的用途,任何加载的视图都会自动运行其编写器,同时为视图提供可能需要的任何额外数据
View::composer(array('partials.sidebar'), function($view)
{
$news = News::all();
$view->with('news', $news);
});
我通常将其放在L3和L4中的routes.php
文件中
在视图views\partials\sidebar.blade.php
中,您现在始终可以访问变量$news
,该变量将包含新闻集合中的所有模型
View::composer(array('partials.sidebar'), function($view)
{
$news = News::all();
$view->with('news', $news);
});