diglactic/laravel-breadcrumbs
Laravel-style breadcrumbs for your app. Define trails in a single place, render them with built-in or custom templates, and support route-bound crumbs and structured data. Official fork of Dave James Miller’s original Laravel Breadcrumbs.
composer require diglactic/laravel-breadcrumbs to add the package.routes/breadcrumbs.php and define breadcrumb trails using Breadcrumbs::for().
Example:
Breadcrumbs::for('home', function ($trail) {
$trail->push('Home', route('home'));
});
{{ Breadcrumbs::render('home') }} in your Blade templates.For a blog post page, define dynamic breadcrumbs:
// routes/breadcrumbs.php
Breadcrumbs::for('post', function ($trail, $post) {
$trail->parent('blog');
$trail->push($post->title, route('post', $post));
});
Render in Blade:
{{ Breadcrumbs::render('post', $post) }}
Breadcrumbs::for() to map route names to breadcrumb logic.$trail->parent('parent-name') and $trail->push().// app/Http/Middleware/BreadcrumbsMiddleware.php
public function handle($request, Closure $next) {
Breadcrumbs::render(request()->route()->getName());
return $next($request);
}
Breadcrumbs::view() for structured data (e.g., JSON-LD) alongside standard views.php artisan vendor:publish --tag=breadcrumbs-views
Breadcrumbs::for('category', function ($trail, $category) {
if ($category->parent) {
$trail->parent('category', $category->parent);
} else {
$trail->parent('blog');
}
$trail->push($category->name, route('category', $category));
});
Breadcrumbs::for('dashboard', function ($trail) {
if (auth()->check()) {
$trail->push('Dashboard', route('dashboard'));
} else {
$trail->push('Login', route('login'));
}
});
Route::name()) for route-bound breadcrumbs to work.config/breadcrumbs.php match your Blade files.parent('category') where category depends on itself).Breadcrumbs::generate('name', $params) in Tinker to inspect breadcrumb collections:
php artisan tinker
>>> Breadcrumbs::generate('post', $post)
php artisan config:clear
php artisan view:clear
{{ Breadcrumbs::view('breadcrumbs::json-ld', 'post', $post) }}
'view' => 'breadcrumbs::tailwind',
$trail->push('Post', route('post'), ['author' => $post->user->name]);
public function handle($request, Closure $next) {
if ($request->route()->getName()) {
Breadcrumbs::render($request->route()->getName());
}
return $next($request);
}
boot() method if used across many routes.How can I help you explore Laravel packages today?