3

我想从 Laravel 中的数组构建一个菜单。我目前正在做的是将数组放在视图中

$menu = ['home', 'users' => ['create users' , 'update user', 'activity log']];

然后循环通过它来生成菜单:

<section>
    <!-- Left Nav Section -->
    <ul class="left">
        <li class="divider"></li>
        @foreach($menu as $key => $nav)
            <li class="has-dropdown">
                <a href="#" class="active">{{ $key }}</a>
                <ul class="dropdown">
                    @foreach($nav as $subnav)
                        <li>
                            <a href="">{{ $subnav }}</a>
                        </li>
                    @endforeach
                </ul>
            </li>
        @endforeach
    </ul>
</section>

有没有其他方法可以在不将数据放入视图的情况下获得相同的结果?

我还尝试在控制器中创建一个构造函数:

public function __construct() {
    $menu = ['home', 'users' => ['create users' , 'update user', 'activity log']];

    return $menu;
}

但我想这不是它的工作原理。我很感激任何关于如何解决这个问题的想法。提前致谢

4

3 回答 3

2

查看作曲家的救援!

每次渲染视图之前都会执行它们,因此您可以使用它来将标准数据传递给它们。

于 2012-11-21T10:50:33.030 回答
1

如果您使用控制器布局,您可以从构造函数中将数据绑定到布局。只需确保首先调用父构造函数,以便正确实例化布局。

public function __construct()
{
    parent::__construct();

    $this->layout->menu = ['home', 'users' => ['create users' , 'update user', 'activity log']];
}

这会将$menu变量绑定到布局,并且也可用于与 Blades 一起使用的任何嵌套视图@include

于 2012-11-21T06:27:05.403 回答
0

看看视图作曲家: http ://www.laravel.com/docs/views#view-composers

于 2012-11-21T05:12:46.863 回答