{note} You're browsing the documentation for an old version of laravel-breadcrumbs. Consider upgrading your project to v3.

Outputting Breadcrumbs

Introduction

Call Breadcrumbs::render() in the view for each page, passing it the name of the breadcrumb to use an any additional parameters.

With Blade

In the page (e.g. resources/views/home.blade.php):

{{ Breadcrumbs::render('home') }}

Or with a parameter:

{{ Breadcrumbs::render('category', $category) }}

With Blade Layouts and @section

In the page (e.g. resources/views/home.blade.php):

@extends('layouts.master')

@section('breadcrumbs')
    {{ Breadcrumbs::render('home') }}
@endsection

Or using the shorthand syntax:

@extends('layouts.master')

@section('breadcrumbs', Breadcrumbs::render('home'))

And in the layout file (e.g. resources/views/layouts/master.blade.php):

@yield('breadcrumbs')

Pure PHP (without Blade)

In the page (e.g. resources/views/home.php):

<?php echo Breadcrumbs::render('home'); ?>

Structured Data

To render breadcrumbs as JSON-LD structured data (usually for SEO reasons), use Breadcrumbs::view() to render the breadcrumbs::json-ld template in addition to the normal one. For example:

<html>
    <head>
        ...
        {{ Breadcrumbs::view('breadcrumbs::json-ld', 'category', $category) }}
        ...
    </head>
    <body>
        ...
        {{ Breadcrumbs::render('category', $category) }}
        ...
    </body>
</html>

{note} If you use Laravel Page Speed you may need to disable the TrimUrls middleware.

To specify an image, add it to the $data parameter in push():

Breadcrumbs::for('post', function (Generator $trail, $post) {
    $trail->parent('home')
        ->push($post->title, route('post', $post), ['image' => asset($post->image)]);
});

If you prefer to use Microdata or RDFa, you will need to create a custom template.

← Previous Topic

Custom Templates

Next Topic →

Advanced Usage

Caught a mistake? Suggest an edit on Github