File: D:/HostingSpaces/BVerhoeven/verhoevendak.nl/app/Providers/BreadcrumbServiceProvider.php
<?php
namespace App\Providers;
use Illuminate\Support\ServiceProvider;
use DaveJamesMiller\Breadcrumbs\Facade as Breadcrumbs;
use KommaApp\Cases\CaseService;
use KommaApp\Pages\PageService;
use KommaApp\Services\ServiceService;
class BreadcrumbServiceProvider extends ServiceProvider
{
/**
* Register all breadcrumbs
*
* @param PageService $pageService
* @param CaseService $caseService
* @internal param Breadcrumbs $breadcrumbs
*/
public function boot(
PageService $pageService,
CaseService $caseService,
ServiceService $serviceService)
{
// Register all pages
Breadcrumbs::register('home', function($breadcrumbs)
{
$breadcrumbs->push('Home', '/');
});
// Register all cases
foreach($pageService->routes() as $pageRoute)
{
// Skip empty code names and home
if(empty($pageRoute['code_name']) || $pageRoute['code_name'] == 'home') continue;
// Register page
Breadcrumbs::register('' . $pageRoute['code_name'], function($breadcrumbs) use ($pageRoute)
{
$breadcrumbs->parent('home');
$breadcrumbs->push($pageRoute['name'], $pageRoute['alias']);
});
}
// Register case index
Breadcrumbs::register('cases', function($breadcrumbs)
{
$breadcrumbs->parent('home');
$breadcrumbs->push('Cases', '/cases');
});
// Register all cases
foreach($caseService->all() as $case)
{
Breadcrumbs::register('case.' . $case->translation->slug, function($breadcrumbs) use ($case)
{
$breadcrumbs->parent('cases');
$breadcrumbs->push($case->translation->name, '/cases/' . $case->translation->slug);
});
}
// Register service index
Breadcrumbs::register('services', function($breadcrumbs)
{
$breadcrumbs->parent('home');
$breadcrumbs->push('Diensten', '/diensten');
});
// Register all services
foreach($serviceService->services() as $service)
{
Breadcrumbs::register('service.' . $service->slug, function($breadcrumbs) use ($service)
{
$breadcrumbs->parent('services');
$breadcrumbs->push($service->name, '/diensten/' . $service->slug);
});
}
}
/**
* Register any application services.
*
* @return void
*/
public function register()
{
//
}
}