gpt4 book ai didi

php - 在 Laravel 中的什么地方放置菜单逻辑?

转载 作者:可可西里 更新时间:2023-10-31 22:40:03 24 4
gpt4 key购买 nike

在 Laravel 中放置菜单数据逻辑的最佳概念位置是什么。如果我使用 Menu bundle 把它放在哪里。在 Base_Controller 中创建附加功能或其他功能?

最佳答案

Note: this answer was written for Laravel 3 and might or might not work with the most recent Laravel 4


我最喜欢的创建动态菜单的方法是将菜单部分与主布局分离,并通过 Laravel 的 Composer 注入(inject)菜单数据(不要将它与 Composer 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>

最后我们可以通过 composer 注入(inject)变量。

<?php 

// application/routes.php

View::composer('parts.menu', function($view){
$view->with('menuitems', Menu::all());
});

这样,每次调用 parts/menu.blade.php 时,Composer 都会拦截 View 并将其注入(inject) $menuitems 变量。这与在 return View::make('blahblah')->with( 'menuitems', Menu::all() )

上使用 with 相同

希望对您有所帮助:)


编辑:如果您不喜欢在 routes.php 中包含逻辑,您可以将其放在 start.php 中并考虑 Jason Lewis 将 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';

你明白了。将 Composer 函数放在 composers.php 中。

在此处阅读整篇文章:http://jasonlewis.me/article/laravel-keeping-things-organized

关于php - 在 Laravel 中的什么地方放置菜单逻辑?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13542688/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com