Laravel Breadcrumbs is no longer maintained. Please see the README for more details.


Laravel Breadcrumbs uses Semantic Versioning.

v3.0.2 (30 Jan 2017)

  • Laravel 5.4 support

v3.0.1 (28 Aug 2016)

  • Laravel 5.3 support

Upgrading from Laravel 5.2 to 5.3

  • Upgrade Laravel Breadcrumbs to 3.0.1 (or above)
  • Move app/Http/breadcrumbs.php to routes/breadcrumbs.php (optional but recommended)

v3.0.0 (8 Feb 2015)

  • Add Laravel 5 support (#62)
  • Change view namespace from laravel-breadcrumbs:: to breadcrumbs::
  • Change Bootstrap 3 template from <ul> to <ol> to match the documentation
  • Move documentation from GitHub (Markdown) to Read The Docs (reStructuredText/Sphinx)
  • Greatly improve unit & integration tests (largely thanks to Testbench)
  • Fix issue that prevented non-deferred service providers referencing Breadcrumbs (#39) by making Breadcrumbs non-deferred also
  • Rename generateArrayIfExists() to generateIfExistsArray()
  • Rename renderArrayIfExists() to renderIfExistsArray()
  • Remove $breadcrumbs->get() and $breadcrumbs->set() methods from Generator class (they were never used nor documented)
  • Remove Breadcrumbs::getView()
  • Switch from PSR-0 to PSR-4 file naming

Upgrading from 2.x to 3.x

  • Upgrade to Laravel 5
  • Move app/breadcrumbs.php to app/Http/breadcrumbs.php
  • Move app/config/packages/davejamesmiller/laravel-breadcrumbs/config.php to config/breadcrumbs.php (if used)

The following changes are optional because there are shims in place:

  • In the config file, replace laravel-breadcrumbs:: with breadcrumbs::
  • Replace any calls to Breadcrumbs::generateArrayIfExists() with Breadcrumbs::generateIfExistsArray()
  • Replace any calls to Breadcrumbs::renderArrayIfExists() with Breadcrumbs::renderIfExistsArray()


Laravel 4 and PHP 5.3 are no longer supported – please continue to use the 2.x branch if you use them.

v2.3.1 (8 Feb 2015)

  • Fix issue that prevented non-deferred service providers referencing Breadcrumbs (#39) by making Breadcrumbs non-deferred also (backported from 3.0.0)

v2.3.0 (26 Oct 2014)

  • Add $data parameter to $breadcrumb->push() to allow for arbitrary data (#34, #35, #55, #56)

v2.2.3 (10 Sep 2014)

  • Fix Breadcrumbs::generate() with no parameters so it uses the current route, like Breadcrumbs::render() does (#46)

v2.2.2 (3 Aug 2014)

  • Support for Laravel’s App::missing() method when using automatic route detection (#40, #41)

v2.2.1 (19 May 2014)

  • Laravel 4.2 support (#21, #28)

v2.2.0 (26 Jan 2014)

  • Add Breadcrumbs::exists(), renderIfExists(), renderArrayIfExists() (#22)
  • Use the current route name & parameters by default so you don’t have to specify them in the view (as long as you use consistent names) (#16, #24)

v2.1.0 (16 Oct 2013)

  • Add support for non-linked breadcrumbs to the Twitter Bootstrap templates (#20)

v2.0.0 (28 Sep 2013)

  • Add Twitter Bootstrap v3 template (#7)
  • Twitter Bootstrap v3 is now the default template
  • Support for passing arrays into render(), generate() and parent() (not backwards-compatible) (#8)
    • Split Breadcrumbs::render() into render($name, $arg1, $arg2) and renderArray($name, $params)
    • Split Breadcrumbs::generate() into generate($name, $arg1, $arg2) and generateArray($name, $params)
    • Split $breadcrumbs->parent() into parent($name, $arg1, $arg2) and parentArray($name, $params)
  • Set view name in config file instead of in breadcrumbs.php (#10, #11)
  • Simplify class names (#15)
  • Add unit tests

Upgrading from 1.x to 2.x

  • In app/config/app.php change DaveJamesMiller\Breadcrumbs\BreadcrumbsServiceProvider to DaveJamesMiller\Breadcrumbs\ServiceProvider
  • In app/config/app.php change DaveJamesMiller\Breadcrumbs\Facades\Breadcrumbs to DaveJamesMiller\Breadcrumbs\Facade
  • The default template was changed from Bootstrap 2 to Bootstrap 3. See Choose a template if you need to switch it back.

The following internal changes will not affect most people but if you have any problems please be aware of the following:

  • The view namespace was changed from breadcrumbs to laravel-breadcrumbs to match the Composer project name.
  • The Bootstrap 2 template name was changed from breadcrumbs::bootstrap to laravel-breadcrumbs::bootstrap2.
  • If you pass arrays into any of the methods, please read the following section:

Passing arrays into render(), generate() and parent()

In version 1.x you could pass an array into each of these methods and it was split up into several parameters. For example:

// If this breadcrumb is defined:
Breadcrumbs::register('page', function($breadcrumbs, $param1, $param2)
    $breadcrumbs->push($param1, $param2);

// Then this:
Breadcrumbs::render('page', ['param1', 'param2']);

// Was equivalent to this:
Breadcrumbs::render('page', 'param1', 'param2');

// But to pass an array as the first parameter you would have to do this instead:
Breadcrumbs::render('page', [['param1A', 'param1B']]);

This means you couldn’t pass an array as the first parameter unless you wrapped all parameters in another array (issue #8).

In version 2.x this has been split into two methods:

// Now this:
Breadcrumbs::renderArray('page', ['param1', 'param2']);

// Is equivalent to this:
Breadcrumbs::render('page', 'param1', 'param2');

// And this only passes a single parameter (an array) to the callback:
Breadcrumbs::render('page', ['param1A', 'param1B']);

Similarly Breadcrumbs::generateArray() and $breadcrumbs->parentArray() methods are available, which take a single array argument.

v1.0.1 (13 Jul 2013)

  • Fix for PHP 5.3 compatibility (#3)

v1.0.0 (25 May 2013)

  • Initial release