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/ */

    

robertboes / inertia-breadcrumbs example snippets


// diglactic/laravel-breadcrumbs
use RobertBoes\InertiaBreadcrumbs\Collectors\DiglacticBreadcrumbsCollector;

return [
    'collector' => DiglacticBreadcrumbsCollector::class,
];

// tabuna/breadcrumbs
use RobertBoes\InertiaBreadcrumbs\Collectors\TabunaBreadcrumbsCollector;

return [
    'collector' => TabunaBreadcrumbsCollector::class,
];

// glhd/gretel
use RobertBoes\InertiaBreadcrumbs\Collectors\GretelBreadcrumbsCollector;

return [
    'collector' => GretelBreadcrumbsCollector::class,
];

// Built-in closure collector
use RobertBoes\InertiaBreadcrumbs\Collectors\ClosureBreadcrumbsCollector;

return [
    'collector' => ClosureBreadcrumbsCollector::class,
];

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(),
        ]);
    }
}

// config/gretel.php

return [
    'packages' => [
        'inertiajs/inertia-laravel' => false,
    ],
];
bash
php artisan vendor:publish --tag="inertia-breadcrumbs-config"