【问题标题】:CakePHP: Adding default values to router during runtimeCakePHP:在运行时向路由器添加默认值
【发布时间】:2011-06-23 12:22:19
【问题描述】:

当谈到默认值和持久参数时,我对 CakePHP(1.3) 路由有点不知所措。

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

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

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

【问题讨论】:

    标签: cakephp routing cakephp-1.3


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      我通过将语言参数设为可选并在appController 的beforeRender() 中检查它解决了这个问题。如果语言代码不存在,浏览器将被重定向到添加语言代码的当前 url。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-04-12
        • 1970-01-01
        • 2015-01-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-01-21
        • 2015-12-24
        相关资源
        最近更新 更多