CakePHP:在运行时向路由器添加默认值

时间:2011-06-23 12:22:19

标签: cakephp routing cakephp-1.3

当涉及到默认值和持久性参数时,我对CakePHP(1.3)路由感到有些不知所措。

我当前的项目从网址的第一个参数( example.com/en/pagename /)中读取当前语言,如果语言不可用,它会尝试从会话或cookie,如果失败,则回退到默认配置。

在此之后,使用Router::url()生成的所有URL都应包含语言参数(即,如果未在参数中覆盖,则为默认语言)。问题是,我不知道一个干净的方法来实现这一目标。是否有一个或我需要添加自己的黑客?在不影响所有其他路线的情况下应用这些黑客的最佳位置是什么?

我可以用填充缺失参数的重定向来解决这个特殊问题,但是我想了解更多关于CakePHP中的路由的信息,我觉得这些默认值在其他应用程序中也很有用。

2 个答案:

答案 0 :(得分:1)

创建路线时可以使用'persist'选项: http://api13.cakephp.org/class/router#method-Routerconnect

答案 1 :(得分:0)

我通过使语言参数可选并在appController的{​​{1}}中检查它来解决了这个问题。如果没有语言代码,浏览器将被重定向到添加了语言代码的当前网址。