在单个页面中包含更多控制器

时间:2016-07-21 14:50:55

标签: laravel laravel-5.2

我刚开始学习Laravel,我想在我的主要布局中加入第二个控制器。

路由是默认的根目录:/

布局如下:

<div class="container">
    @yield('content')
</div>
<div class="basket">
    ~basket comes here~
</div>

我想要显示用户的篮子,但我需要数据库查询,而且我找不到包含其他控制器的方法,而不是路由。

我并不是真的要求代码(可悲的是我没有为这个问题找到更好的地方),可能我只需要一个设计提示,我真的觉得我试图这样做错了,因为我无法找到任何相关/有用的信息。

我不想把篮子放到每个使用main布局的控制器中。

任何形式的帮助都会被贬低,我真的输了:)

1 个答案:

答案 0 :(得分:1)

您应该使用view composers。打开 AppServiceProvider 并在 boot()方法中添加以下内容:

view()->composer('your.layout.name', function ($view) {
    $basket = ...// Your basket query here

    $view->with('basket', basket);
});

这基本上说,当组成名称为 your.layout.name 的视图时,添加名为 $ basket 的变量。