PHP code example of robertboes / inertia-breadcrumbs
1. Go to this page and download the library: Download robertboes/inertia-breadcrumbs library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
use RobertBoes\InertiaBreadcrumbs\Collectors\ClosureBreadcrumbsCollector;
return [
'collector' => ClosureBreadcrumbsCollector::class,
];
namespace App\Providers;
use RobertBoes\InertiaBreadcrumbs\Breadcrumb;
use RobertBoes\InertiaBreadcrumbs\InertiaBreadcrumbs;
class AppServiceProvider extends ServiceProvider
{
public function boot(): void
{
$breadcrumbs = app(InertiaBreadcrumbs::class);
$breadcrumbs->for('users.index', fn () => [
Breadcrumb::make('Users', route('users.index')),
]);
$breadcrumbs->for('users.show', fn (User $user) => [
Breadcrumb::make('Users', route('users.index')),
Breadcrumb::make($user->name, route('users.show', $user)),
]);
}
}
namespace App\Http\Controllers;
use App\Models\User;
use RobertBoes\InertiaBreadcrumbs\Breadcrumb;
use RobertBoes\InertiaBreadcrumbs\InertiaBreadcrumbs;
class UserController extends Controller
{
public function show(User $user, InertiaBreadcrumbs $breadcrumbs)
{
$breadcrumbs->for(fn (User $user) => [
Breadcrumb::make('Users', route('users.index')),
Breadcrumb::make($user->name, route('users.show', $user)),
]);
return inertia('Users/Show', ['user' => $user]);
}
}
use RobertBoes\InertiaBreadcrumbs\ShareStrategy;
return [
'share' => ShareStrategy::Default,
];
namespace App\Support;
use Illuminate\Support\Str;
use RobertBoes\InertiaBreadcrumbs\Classifier\ClassifierContract;
use RobertBoes\InertiaBreadcrumbs\BreadcrumbCollection;
class IgnoreAdminBreadcrumbs implements ClassifierContract
{
public function shouldShareBreadcrumbs(BreadcrumbCollection $collection): bool
{
return ! Str::startsWith($collection->first()?->url(), '/admin');
}
}
namespace App\Providers;
use RobertBoes\InertiaBreadcrumbs\Breadcrumb;
use RobertBoes\InertiaBreadcrumbs\InertiaBreadcrumbs;
class AppServiceProvider extends ServiceProvider
{
public function boot(): void
{
app(InertiaBreadcrumbs::class)->serializeUsing(fn (Breadcrumb $breadcrumb) => [
'name' => $breadcrumb->title(),
'href' => $breadcrumb->url(),
'active' => $breadcrumb->current(),
'data' => $breadcrumb->data(),
]);
}
}