public function boot() { Route::model('page', 'Boyhagemann\\Pages\\Model\\Page'); Route::model('section', 'Boyhagemann\\Pages\\Model\\Section'); Route::model('block', 'Boyhagemann\\Pages\\Model\\Block'); Route::get('admin/pages/{page}/content', array('uses' => 'Boyhagemann\\Pages\\Controller\\PageController@content', 'as' => 'admin.pages.content')); Route::get('admin/pages/{page}/content/create/{section}/{block}', array('uses' => 'Boyhagemann\\Pages\\Controller\\PageController@addContent', 'as' => 'admin.pages.content.create')); Route::post('admin/pages/{page}/content/store/{section}/{block}', array('uses' => 'Boyhagemann\\Pages\\Controller\\PageController@storeContent', 'as' => 'admin.pages.content.store')); Route::resource('admin/layouts', 'Boyhagemann\\Pages\\Controller\\LayoutController'); Route::resource('admin/pages', 'Boyhagemann\\Pages\\Controller\\PageController'); Route::resource('admin/blocks', 'Boyhagemann\\Pages\\Controller\\BlockController'); Route::resource('admin/sections', 'Boyhagemann\\Pages\\Controller\\SectionController'); Route::resource('admin/content', 'Boyhagemann\\Pages\\Controller\\ContentController'); if (Schema::hasTable('pages')) { Config::set('blocks', App::make('Boyhagemann\\Pages\\Model\\Page')->getBlocks()); $routes = array(); foreach (Route::getRoutes() as $path => $route) { $routes[$path] = $route; } foreach (Model\Page::get() as $page) { if ($page->method != 'get' || isset($routes[$page->route])) { continue; } $method = $page->method; Route::$method($page->route, function () { }); } } }
public function boot() { /** * * Get all pages that are in the database. We can't be sure if there is a working database * connection, so put the code in a try/catch. * */ try { foreach (Page::get() as $page) { PageRepository::createRoute($page); } } catch (PDOException $e) { /** * There is probably no database connection yet. We can't get the pages from * the database, so fall back to the original routes in Laravel. * */ } }