37 lines
1.2 KiB
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");
|
|
});
|
|
});
|
|
}
|
|
}
|