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 に答える