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