在哪里放置菜单逻辑Laravel?(Where to place menu logic in Lar

2019-08-03 04:28发布

什么是把菜单数据逻辑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变量。 这与使用withreturn 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?
标签: php menu laravel