laravel-breadcrumbs
Advanced Usage
Resourceful Controllers
{note} laravel-breadcrumbs has been archived and is no longer maintained. Use caution when installing in your apps.
{note} You're browsing the documentation for an old version of laravel-breadcrumbs. Consider upgrading your project to v4. Check your version with the following command:
`composer show rawilk/laravel-breadcrumbs`
Laravel automatically creates route names for resourceful controllers, e.g. photo.index
, which you can use when
defining your breadcrumbs. For example:
// routes/web.php
Route::resource('photo', PhotoController::class);
The generated routes:
$ php artisan route:list
+--------+----------+--------------------+---------------+-------------------------+------------+
| Domain | Method | URI | Name | Action | Middleware |
+--------+----------+--------------------+---------------+-------------------------+------------+
| | GET|HEAD | photo | photo.index | PhotoController@index | |
| | GET|HEAD | photo/create | photo.create | PhotoController@create | |
| | POST | photo | photo.store | PhotoController@store | |
| | GET|HEAD | photo/{photo} | photo.show | PhotoController@show | |
| | GET|HEAD | photo/{photo}/edit | photo.edit | PhotoController@edit | |
| | PUT | photo/{photo} | photo.update | PhotoController@update | |
| | PATCH | photo/{photo} | | PhotoController@update | |
| | DELETE | photo/{photo} | photo.destroy | PhotoController@destroy | |
+--------+----------+--------------------+---------------+-------------------------+------------+
Your breadcrumbs:
// routes/breadcrumbs.php
// Photos
Breadcrumbs::for(
'photo.index',
fn (Generator $trail) => $trail->parent('home')->push('Photos', route('photo.index'))
);
// Photos > Upload Photo
Breadcrumbs::for(
'photo.create',
fn (Generator $trail) => $trail->parent('photo.index')->push('Upload Photo', route('photo.create'))
);
// Photos > [Photo Name]
Breadcrumbs::for(
'photo.show',
fn (Generator $trail, $photo) => $trail->parent('photo.index')->push($photo->title, route('photo.show', $photo))
);
// Photos > [Photo Name] > Edit Photo
Breadcrumbs::for(
'photo.edit',
fn (Generator $trail, $photo) => $trail->parent('photo.show', $photo)->push('Edit Photo', route('photo.edit', $photo))
);
For more details see Resource Controllers in the Laravel documentation.