我刚刚开始使用Laravel而且我不知道如何做到这一点。
我有一个典型的侧面菜单,几乎每个视图都是如此:
在我的索引视图中,我没有问题,因为我这样做:
@foreach($lastRecipes as $lastRecipe)
<div class="side-lastRecipes">
{{lastRecipe->name}}
</div>
@endforeach
在路线/控制器中使用:
我是否必须使用&#34;以及#34;来查看数据库以获取每个获取视图?
return view('welcome')
->with("lastRecipes",$lastRecipes);
我想过从其他控制器调用这个方法getSideMenu但是我读到laravel没有静态功能而且你必须使用Facades,但我不知道这是一个好的做法还是有一个最好的方法处理这个侧面菜单。
非常感谢你!
答案 0 :(得分:1)
在App\Providers\AppServiceProvider
课程中,在boot()
函数中添加以下代码:
\View::share('key', 'value');
在您的情况下,key
应该是lastRecipes
,而value
应该是您想要分享的内容。
答案 1 :(得分:0)
这个问题有点含糊不清,因为每个控制器都必须处理一个责任原则,我的意思是f。你有HomeController渲染主页的例子,包括navbar,sidebars footer等部分。所以你只有一个控制器渲染所有页面...(也称为FrontController),Imagine HomeController有索引方法渲染主页,和渲染联系人的联系方式,以及关于我们部分的渲染方法。 HomeController的职责就是渲染页面。 因此,如果您的页面中有联系人表单发送数据,那么您将拥有一个将获得请求的ContactFormsController和索引,您将拥有一个方法,对于联系人,您将拥有一个方法等等...... 正如你所说,你开始使用Laravel,那么一个很棒的PHP框架也会在幕后为你做很多事情,回答你的问题,它实际上不会影响性能(如果这是你的问题),因为你有一个雄辩的缓存和刀片缓存不用担心。 另一方面,如果你需要分享部分或片段,那么这个功能可以提供帮助。显示每个页面:https://laravel.com/docs/5.3/views#view-composers,但无论如何我不鼓励现在使用它,因为你在学习之前还需要继续玩,然后再考虑其他事情。