ldc-groupe/app/Providers/DynamicPageRouteServiceProvider.php

37 lines
1.2 KiB
PHP

<?php
namespace App\Providers;
use Illuminate\Support\ServiceProvider;
use Illuminate\Support\Facades\Route;
use App\Models\DynamicPage;
use Illuminate\Support\Facades\Schema;
use Mcamara\LaravelLocalization\Facades\LaravelLocalization;
use Mcamara\LaravelLocalization\Middleware\LaravelLocalizationRoutes;
class DynamicPageRouteServiceProvider extends ServiceProvider
{
/**
* Register services.
*
* @return void
*/
public function boot(): void
{
if (!Schema::hasTable('dynamic_pages')) {
return;
}
Route::group([
'prefix' => LaravelLocalization::setLocale(),
'middleware' => ['web', LaravelLocalizationRoutes::class],
], function () {
DynamicPage::getPublishedDynamicPages()->map(function (DynamicPage $dynamicPageModel) {
$locale = app()->getLocale();
$slug = $dynamicPageModel->getTranslation("slug", $locale);
Route::get($slug, function () use ($dynamicPageModel) {
return view($dynamicPageModel->getView(), compact('dynamicPageModel'));
})->name("dynamic.page");
});
});
}
}