php - 如何在 Laravel 中创建具有无限子页面的路由?

标签 php laravel laravel-4

有没有什么办法可以无限级抓取子页面的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 等。

什么是最有效的方法?

最佳答案

当然可以。不过,您需要在斜杠 / 上展开捕获的页面,然后从那里开始。

Route::any('{any}', function($pages)
{
    $pages = explode('/', $pages);

    // Do whatever...
})->where('any', '.*');

需要注意的几点:

  1. 这条路线应该放在最后,否则你将无法到达任何其他路线。
  2. 这绝对是一切,如果该页面不存在,您需要返回一个错误。
  3. 我在上面使用 Route::any 来捕获任何请求(POSTGET 等),您可能想要将其限制为其中的一个子集或仅 GET,这取决于您。
  4. 正如下面的评论所指出的,您不能再使用 URL::route 帮助器,但您仍然可以使用 URL::to 帮助器。这应该不是问题,因为您很可能将这些动态页面存储在数据库中,因此 URI 也应该存储在数据库中。

关于php - 如何在 Laravel 中创建具有无限子页面的路由?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22723984/

相关文章:

php - 同时更新同一台服务器上的数百个站点

php - Laravel 4 - 一个表单中的两个提交按钮,并且两个提交都由不同的操作处理

mysql - updateOrCreate 不更新新创建的列值

sql - 如何在启用 softDeletes 时定义唯一索引

php - Laravel 检查相关模型是否存在

php - 无法访问 php 中的数组值

php - "Notice: Undefined variable"、 "Notice: Undefined index"、 "Warning: Undefined array key"和 "Notice: Undefined offset"使用 PHP

php - 如何在 MySQL 中的单个查询中使用 group by 检索多列计数值?

laravel - 在Docker容器之间共享具有预编译文件的文件夹

laravel - 如何使用包语言文件?