Laravel模板,每次在任何页面中显示默认数据


Laravel templates, that shows default data every time in any page

我有许多不同的页面(如feed,users等)。在每个页面上,我都有正确的块,显示一些默认信息(最新消息,顶级用户和其他一些信息)。

这个正确的块不依赖于页面的主要内容,但它需要一些逻辑(获取一些最新消息,获取顶级用户等)。我不想在控制器的每个操作中编写逻辑来提供数据。我想在任何地方写一次,视图需要自己获取它。如何在拉拉维尔 4 中做到这一点?

附言我的右块视图,包括应用程序主模板中的@include语句。

您正在寻找视图作曲家。它允许您在每次呈现特定视图时执行某些操作。

View::composer('name-of-the-right-block-view', function($view){
    // ... fetch information ...
    $view->with('news', $news);
    $view->with('topUsers', $topUsers);
    // etc...
});

你基本上可以把它放在任何地方。适当的位置是filters.php文件。