Laravel在布局模板上显示动态菜单项

时间:2016-12-19 10:52:49

标签: laravel-5

我已经定义了一个类别模型和表格,我通过我的Laravel应用程序的后端填充。我想将类别显示为菜单项。

在我的控制器中,我有类似

的东西
function fetchMatches(theString, theRegex){
    return theString.match(theRegex).map(function(el) {
        var index = theString.indexOf(el);
        return [index, index + el.length - 1];
    });
}
fetchMatches(" ${employee} and ${} should be validate",/(\$)(\{)(.*)(\})/i);

所以我的想法是我可以在这些类别中遍历layouts.app模板。

public function index()
{
    $categories = Category::all();
    return view('layouts.app', ['categories' => $categories]);
}

如何确保我的应用在所有页面(使用layouts.app模板)上显示这些类别。通常可以创建一个路由条目但是如何为layouts.app模板执行此操作?

2 个答案:

答案 0 :(得分:0)

创建新模板(例如categories.blade.php

public function index()
{
    $categories = Category::all();
    return view('categories', ['categories' => $categories]);
}

并确保它扩展了布局:

@extends('layouts.app')

@foreach($categories as $category)
       <li><a href="..." class="user-icon">{{ $category->name}} </a></li>
@endforeach

答案 1 :(得分:0)

您可以使用view()->composer('*'),这会使变量适用于您的所有观看次数。

view()->composer('*', function ($view) {

    $categories = Category::all();

    return $view->with('categories', $categories);
});

您还可以更改*以指定子组,例如foo.bar