Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何在主刀片模板中加载方法?_Php_Templates_Laravel_Blade - Fatal编程技术网

Php 如何在主刀片模板中加载方法?

Php 如何在主刀片模板中加载方法?,php,templates,laravel,blade,Php,Templates,Laravel,Blade,我使用的是laravel的刀片模板,我的所有页面都有一个主模板。在主模板中,我有一个顶部栏和一个侧栏。我想在侧边栏中加载一些内容。但我不知道如何用一种更简单的方式来做。现在,我在我拥有的每个控制器中调用该方法(我希望在侧边栏中显示该方法),如下所示: View::make()->with('data_to_load_in_sidebar',$data_to_load_in_sidebar) 我如何才能只加载一次,而不是每次生成视图时加载一次?我会在构造函数中共享顶部栏和侧栏数据(最好是在

我使用的是laravel的刀片模板,我的所有页面都有一个主模板。在主模板中,我有一个顶部栏和一个侧栏。我想在侧边栏中加载一些内容。但我不知道如何用一种更简单的方式来做。现在,我在我拥有的每个控制器中调用该方法(我希望在侧边栏中显示该方法),如下所示:

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);
});