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