group(function () { DynamicPage::getPublishedDynamicPages()->each(function (DynamicPage $dynamicPageModel) { /** @var string $view The view used for the route. */ $view = 'front.pages.dynamic-page-default'; // Check if the view in config is defined and can be use. if (!empty($dynamicPageModel->config->view)) { $candidate = sprintf('front.pages.%s', $dynamicPageModel->config->view); if (view()->exists($candidate)) { $view = $candidate; } } // Check if the view by slug exist and can be use. if ($view === 'dynamic-page-default' && !empty($dynamicPageModel->slug)) { $candidate = sprintf('front.pages.%s', $dynamicPageModel->slug); if (view()->exists($candidate)) { $view = $candidate; } } // Set the custom route with the right vue. Route::get("/{$dynamicPageModel->slug}", function () use ($dynamicPageModel, $view) { return view($view, compact('dynamicPageModel')); })->name("front.$dynamicPageModel->slug"); }); }); } }