设为首页 加入收藏

TOP

laravel面包屑导航(2)模块化开发
2019-05-12 13:52:07 】 浏览:123
Tags:laravel 面包 导航 模块化 开发

breadcrumbs详细使用手册

https://laravel-breadcrumbs.readthedocs.io/en/latest/index.html#


1. 安装##

1). 使用 composer 安装:

composer require davejamesmiller/laravel-breadcrumbs

关于 composer require 的安装方式,请见 这篇文章

2). 修改 config/app 文件,在 providers 数组内追加如下内容:

'providers' => [
    ...
    DaveJamesMiller\Breadcrumbs\ServiceProvider::class,
],

3). 修改 config/app 文件,在 aliases 数组内追加如下内容:

'aliases' => [
    ...
    'Breadcrumbs' => DaveJamesMiller\Breadcrumbs\Facade::class,
],

2. 配置 breadcrumbs##

modules\Manage\Http\Breadcrumbs.php 文件夹内创建 breadcrumbs.php 文件,内容如下:

<php
$menus = \Modules\Manage\Entities\Menu::manage()->tree()->getToChildren();

Breadcrumbs::register('home', function ($breadcrumbs) {
    $breadcrumbs->push('管理首页', '/');
});
\App\Common\Helpers\Helper::breadcrumbs($menus);

3. 生成配置文件##

扩展包默认使用 Bootstrap 3 版本, 你也可以通过修改配置信息,来兼容 Bootstrap 2.

运行此命令生成配置文件:

php artisan vendor:publish

接着编辑 \config\breadcrumbs.php, 指定 Bootstrap 版本:

<php

return [

   'view' => 'breadcrumbs.bootstrap3',

];

views 字段允许设置的值为:

  • Bootstrap 3: breadcrumbs::bootstrap3
  • Bootstrap 2: breadcrumbs::bootstrap2

4. 加载配置##

modules\Manage\Http\Middleware\Initialize.php

$breadcrumbs = base_path('modules/Manage/Http/Breadcrumbs.php');
if (file_exists($breadcrumbs)) {
    require $breadcrumbs;
}

return $next($request);

相关函数

public static function breadcrumbs($menus, $parent = 'home') {
    foreach ($menus as $menu) {
        Breadcrumbs::register($menu['url'], function ($breadcrumbs) use ($parent, $menu) {
            $breadcrumbs->parent($parent);
            $breadcrumbs->push($menu['name'], $menu['real_url']);
        });
        if (isset($menu['children']) && 0 < count($menu['children'])) {
            static::breadcrumbs($menu['children'], $menu['url']);
        }
    }
}

模板使用

\resources\views\breadcrumbs\bootstrap3.blade.php

@if ($breadcrumbs)
    <ul class="breadcrumb">
        @foreach ($breadcrumbs as $breadcrumb)
            @if (!$breadcrumb->last)
                <li><a href="{{ $breadcrumb->url }}">@if($breadcrumb->first)<i class="icon-home2 position-left"></i>@endif{{ $breadcrumb->title }}</a></li>
            @else
                <li class="active">{{ $breadcrumb->title }}</li>
            @endif
        @endforeach
    </ul>
@endif
\modules\Manage\Resources\views\article\index.blade.php

@extends('layouts.master')
@section('crumbs')
    {!! Breadcrumbs::renderIfExists() !!}
@endsection

@section('title')
    <php
    $breadcrumbs = Breadcrumbs::generateIfExists();
    >

    {!! end($breadcrumbs)->title!!}

    @if(Request::get('category_id'))
        <span class="text-muted">{{ App\Models\ArticleCategory::loadModel(Request::get('category_id'))->name }}</span>
    @endif

@endsection

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇Python2.7中的比较和判断代码实例 下一篇HBase 2.1.0 新式API 基本功能写法

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目