当涉及到默认值和持久性参数时,我对CakePHP(1.3)路由感到有些不知所措。
我当前的项目从网址的第一个参数( example.com/en/pagename /)中读取当前语言,如果语言不可用,它会尝试从会话或cookie,如果失败,则回退到默认配置。
在此之后,使用Router::url()
生成的所有URL都应包含语言参数(即,如果未在参数中覆盖,则为默认语言)。问题是,我不知道一个干净的方法来实现这一目标。是否有一个或我需要添加自己的黑客?在不影响所有其他路线的情况下应用这些黑客的最佳位置是什么?
我可以用填充缺失参数的重定向来解决这个特殊问题,但是我想了解更多关于CakePHP中的路由的信息,我觉得这些默认值在其他应用程序中也很有用。
答案 0 :(得分:1)
创建路线时可以使用'persist'选项: http://api13.cakephp.org/class/router#method-Routerconnect
答案 1 :(得分:0)
我通过使语言参数可选并在appController
的{{1}}中检查它来解决了这个问题。如果没有语言代码,浏览器将被重定向到添加了语言代码的当前网址。