ldc-ovoteam/routes/breadcrumbs/back.php
Jérémy Munsch 6cfa8d8e27
fix(breadcrumbs): handle missing product and recipe gracefully
Return early instead of throwing exceptions for missing product or recipe
during breadcrumb generation to improve user experience.
2026-10-19 14:39:04 +02:00

79 lines
2.2 KiB
PHP

<?php
declare(strict_types=1);
use App\Models\Product;
use App\Models\Recipe;
use Diglactic\Breadcrumbs\Breadcrumbs;
use Diglactic\Breadcrumbs\Generator;
use Illuminate\Support\Str;
Breadcrumbs::for('back.products.index', function (Generator $trail) {
$trail->parent('back.dashboard.index');
$trail->push(
Str::ucfirst(trans_choice('models.classes.product', \INF)),
route('back.products.index')
);
});
Breadcrumbs::for('back.products.create', function (Generator $trail) {
$trail->parent('back.products.index');
$trail->push(
Str::ucfirst(trans_choice('models.classes.product', 1)),
route('back.products.create')
);
});
Breadcrumbs::for('back.products.edit', function (Generator $trail) {
$product = request()->route('product');
if (! $product instanceof Product) {
return;
}
$trail->parent('back.products.index');
$trail->push(
$product->name ?? Str::ucfirst(trans('uwil-backend::crud.actions.edit')),
route('back.products.edit', $product)
);
});
Breadcrumbs::for('back.products.trash', function (Generator $trail) {
$trail->parent('back.products.index');
$trail->push(Str::ucfirst(trans('uwil-backend::back.archives')));
});
Breadcrumbs::for('back.recipes.index', function (Generator $trail) {
$trail->parent('back.dashboard.index');
$trail->push(
Str::ucfirst(trans_choice('models.classes.recipe', \INF)),
route('back.recipes.index')
);
});
Breadcrumbs::for('back.recipes.create', function (Generator $trail) {
$trail->parent('back.recipes.index');
$trail->push(
Str::ucfirst(trans_choice('models.classes.recipe', 1)),
route('back.recipes.create')
);
});
Breadcrumbs::for('back.recipes.edit', function (Generator $trail) {
$recipe = request()->route('recipe');
if (! $recipe instanceof Recipe) {
return;
}
$trail->parent('back.recipes.index');
$trail->push(
$recipe->name ?? Str::ucfirst(trans('uwil-backend::crud.actions.edit')),
route('back.recipes.edit', $recipe)
);
});
Breadcrumbs::for('back.recipes.trash', function (Generator $trail) {
$trail->parent('back.recipes.index');
$trail->push(Str::ucfirst(trans('uwil-backend::back.archives')));
});