Skip to content

Argument 2 passed to App\Providers\BreadcrumbsServiceProvider #20

@fbc

Description

@fbc

I'm getting this error:

Argument 2 passed to App\Providers\BreadcrumbsServiceProvider::App\Providers{closure}() must be an instance of App\Models\project\Project, string given (View: /var/www/resources/views/navigation/breadcrumbs.blade.php)

In app/Providers/BreadcrumbsServiceProvider.php

<?php

namespace App\Providers;

use Tabuna\Breadcrumbs\Trail;
use App\Models\project\Project;
use Tabuna\Breadcrumbs\Breadcrumbs;
use Illuminate\Support\ServiceProvider;

class BreadcrumbsServiceProvider extends ServiceProvider
{
    /**
     * Bootstrap any application services.
     *
     * @return void
     */
    public function boot()
    {
        Breadcrumbs::for('home', fn (Trail $trail) =>
        $trail->push('Dashboard', route('home')));

        Breadcrumbs::for('project.index', fn (Trail $trail) =>
        $trail->parent('home', route('home'))
            ->push('Projects', route('project.index')));

        Breadcrumbs::for('project.show', fn (Trail $trail, Project $project) =>
        $trail->parent('project.index', route('project.index'))
            ->push('View Project', route('project.show', compact('project'))));

        Breadcrumbs::for('project.bill.index', fn (Trail $trail, Project $project) =>
        $trail->parent('project.show', route('project.show', compact('project')))
            ->push('View Bills', route('project.bill.index', compact('project'))));
    }
}

in resources/views/navigation/breadcrumbs.blade.php

<div class="col-md-12">
    <div class="row">
        @if(Breadcrumbs::has())
        @foreach (Breadcrumbs::current() as $crumbs)
        @if ($crumbs->url() && !$loop->last)
        <li class="breadcrumb-item" style="list-style-type: none;">
            <a href="{{ $crumbs->url() }}">
                {{ $crumbs->title() }}
            </a>
        </li>
        @else
        <li class="breadcrumb-item active" style="list-style-type: none;">
            {{ $crumbs->title() }}
        </li>
        @endif
        @endforeach
        @endif
    </div>
</div>

I can't seem to figure out what I'm doing wrong. It works fine until I visit project.bill.index

My routes are defined as:

...
Route::resource('project', 'project\ProjectController'); // Project Crud
...
...
Route::resource('project.bill', 'project\bill\BillController'); // Bill Crud
...

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions