有没有办法捕获无限级别的子页面URL。我的应用程序允许任何用户创建任何级别的子页面。在我的页面表中,我有parentID。
/{page}/{subpage} // this captures 2 level of pages
/{page} // this captures 1 level of page
我想捕获范围
的所有网址site.com/food/healthy/fruit/red/apple site.com/fruit/organge 或 site.com/grapes 或 site.com/a/b/c/d/e/f/g/h/i/j等。
最有效的方式是什么?
答案 0 :(得分:6)
当然有可能。您需要在斜杠/
上展开捕获的页面,然后从那里开始。
Route::any('{any}', function($pages)
{
$pages = explode('/', $pages);
// Do whatever...
})->where('any', '.*');
要注意的一些事项:
Route::any
来捕获任何请求(POST
,GET
等),您可能希望将其限制为这些请求的子集或仅GET
1}},这取决于你。URL::route
帮助程序,但您仍然可以使用URL::to
帮助程序。这不应该是一个问题,因为你很可能将这些动态页面存储在数据库中,因此URI也应该存储在数据库中。