Как сделать Routing к полностью динамическим страницам
Заходим в RouteServiceProvider
. Регистрируем нашу модель страниц:
use App\Page;
затем в методе public function map(Router $router)
класса сразу после регистрации самого файла Http/routes.php
итерируем по имеющимся страницам, вот так:
$pages = Page::all();
foreach($pages as $page) { `
$router->get($page->uri, ['as' => $page->route_name, function() use ($page, $router) {
return $this->app->call('App\Http\Controllers\PagesController@show', [
'page' => $page,
'parameters' => $router->current()->parameters
]);
}]);
}
//URI => foo/{bar}
//$parameters['bar']
Таким образом метод $this->app->call
будет вызываться для каждого $page->uri
и передавать все параметры через переменную $parameters
, плюс в сам объект страницы будет передан в PagesController@show
.
Внимание
Не забываем, что в таблице pages
необходимы поля uri
и route_name
.