【发布时间】:2014-10-27 19:01:11
【问题描述】:
我正在使用 CakePHP 框架创建一个 CMS。通过 CMS 创建的每个页面都有其唯一的 URL 别名,具体取决于虚拟文件夹结构,例如:
- www.site.com/level-1/about-us
- www.site.com/level-2/our-service
用户可以创建自己的页面,该页面最初将具有以下地址:
www.site.com/pages/<page_id> 然后为其创建 URL 别名 www.site.com/<page_alias>
页面别名存储在数据库中。 如何配置路由以自动反映这些更改,例如,当 CMS 用户向网站添加新页面时?考虑到他将来也可以通过 CMS 更新这些别名。
Routes 文件有以下内容
Router::connect(
'/pages/**',
array('controller' => 'pages', 'action' => 'show')
);
手动在路由文件中添加每个新别名非常不方便。想象一个新闻网站,其中包含数百篇具有独特别名的文章。 有没有一个优雅的解决方案?
【问题讨论】:
-
它就像它必须在引导程序或其他东西中完成,或者可能在应用控制器的 beforeFilter() 中完成。但是每次获取数据和定义路由都会花费很多时间。