什么是把菜单数据逻辑Laravel最佳概念的地方。 如果我使用菜单束把它放在哪里。 在Base_Controller
创建额外的功能或不同的东西?
Answer 1:
注意 :这个答案是为Laravel 3和书面可能会或可能不会与最近Laravel 4工作
我最喜欢的创建动态菜单的方式是通过Laravel的作曲家分离的菜单部分从主要布局和注射菜单数据来实现(不与作曲家PHP包管理器混淆,他们是不同的东西)
<!-- layouts/default.blade.php -->
<div id="header">Title</div>
<div id="menu">
@render('parts.menu')
</div>
<div id="content"></div>
<div id="footer"></div>
<!-- parts/menu.blade.php -->
<ul>
@foreach($menuitems as $menuitem)
<li>{{ $menuitem->title }}</li>
@endforeach
</ul>
最后,我们可以通过作曲家注入的变量。
<?php
// application/routes.php
View::composer('parts.menu', function($view){
$view->with('menuitems', Menu::all());
});
这样,每次parts/menu.blade.php
被调用时,作曲家将截获的观点,并注入它$menuitems
变量。 这与使用with
在return View::make('blahblah')->with( 'menuitems', Menu::all() )
希望能帮助到你 :)
编辑 :如果你不喜欢有逻辑routes.php
,你可以把它放在start.php
并考虑拆分的杰森·刘易斯的方式start.php
成单独的文件。
创建一个目录application
叫做start
,并与一些文件填充它。
+ application [DIR]
\-> + start [DIR]
|-> autoloading.php
|-> composers.php
|-> filters.php
\-> validation.php
然后加入这行代码到您的最终application/start.php
require __DIR__ . DS . 'start' . DS . 'autoloading.php';
require __DIR__ . DS . 'start' . DS . 'filters.php';
require __DIR__ . DS . 'start' . DS . 'composers.php';
require __DIR__ . DS . 'start' . DS . 'validation.php';
你有这个想法。 把作曲家功能composers.php。
在这里阅读整篇文章: http://jasonlewis.me/article/laravel-keeping-things-organized
Answer 2:
如何在获取数据的View Composer和使用HTML宏生成的HTML?
Laravel往往有做事情的方法很多。 这就是说,这可能可以有点势不可挡,有时混乱。
文章来源: Where to place menu logic in Laravel?