【扩展推荐】Laravel Breadcrumbs 自动面包屑导航
17

说明

laravel-breadcrumbs 可为你的 Laravel 项目快速定制拥有 Bootstrap 风格的面包屑导航。

文章的 Demo 项目

截图

运行

Demo 代码请见:

https://github.com/CycloneAxe/est-breadcrumbs-demo

请参照此文档运行 Demo:

https://laravel-china.org/topics/1902

文章概览

  1. 安装;
  2. 配置 breadcrumbs;
  3. 生成配置文件;
  4. 基本使用

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

app/Http 文件夹内创建 breadcrumbs.php 文件,内容如下:

<?php
// Home
Breadcrumbs::register('home', function($breadcrumbs)
{
    $breadcrumbs->push('Home', route('home'));
});

// Home > Blog
Breadcrumbs::register('blog', function($breadcrumbs)
{
    $breadcrumbs->parent('home');
    $breadcrumbs->push('Blog', route('blog'));
});

3. 生成配置文件

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

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

php artisan vendor:publish

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

'view' => 'breadcrumbs::bootstrap3',

views 字段允许设置的值为:

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

4. 基本使用

1). 修改 app/HTTP/routes.php, 添加相对应的 Route.

注意这里新增的 Route 需要定义别名, 因为 breadcrumbs 在生成时会调用了辅助方法 route(), 而此方法是根据 Route 别名来生成对应 Url 的.

Route::get('home', [
   'as' => 'home',
   function () {
       return view('home');
   }
]);

Route::get('blog', [
   'as' => 'blog',
   function () {
       return view('home');
   }
]);

2). 在需要展示 breadcrumbs 的页面中调用来渲染:

{!! Breadcrumbs::render('blog'); !!}

3). 最终生成的效果如下:

更多的例子请移步 官方文档 参考.

本文章由 The EST Group 成员 @Kelvin 撰写, 首发地为 PHPHub 社区, 转载必须贴上原文链接。


欢迎关注 LaravelTips, 一个专注于为 Laravel 开发者服务, 致力于帮助开发者更好的掌握 Laravel 框架, 提升开发效率的微信公众号.

本帖已被设为精华帖!
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
讨论数量: 5

:stuck_out_tongue_closed_eyes:
我的出来的效果跟你的不一样、、、、

1年前

怎么自定义breadcrumbs.php的文章名称及路径啊,我可能很多的栏目要展示该怎么做。

10个月前

  • 请注意单词拼写,以及中英文排版,参考此页
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`, 更多语法请见这里 Markdown 语法
  • 支持表情,使用方法请见 Emoji 自动补全来咯,可用的 Emoji 请见 :metal: :point_right: Emoji 列表 :star: :sparkles:
  • 上传图片, 支持拖拽和剪切板黏贴上传, 格式限制 - jpg, png, gif
  • 发布框支持本地存储功能,会在内容变更时保存,「提交」按钮点击时清空
  请勿发布不友善或者负能量的内容。与人为善,比聪明更重要!