【问题标题】:CakePHP Routing, using a language prefix with a default prefixCakePHP 路由,使用带有默认前缀的语言前缀
【发布时间】:2011-01-03 17:42:07
【问题描述】:

我正在尝试创建一个默认的路由前缀。

http://localhost/heb/mycont 会离开希伯来语页面,而

http://localhost/mycont 会跳转到英文页面。

Router::connect('/:language/mycont',array('controller'=>'contname','action'=>'index'),array('language'=>'[a-z]{0,3}'));

此代码允许我使用 0-3 个字母作为语言,但它仍然需要语言!

http://localhost/a/mycont 可以工作

http://localhost/mycont 不起作用

任何想法如何解决这个问题? 甚至可以使用默认路由吗?

【问题讨论】:

    标签: cakephp routing default prefix


    【解决方案1】:

    让我先声明我不是路由专家,但在这种情况下,你所拥有的东西不起作用是有道理的,因为路由需要一个语言参数;如果路线不存在,路线将不匹配。

    要“修复”(引用,因为它并没有真正损坏),您可能想尝试设置您的默认语言环境,并在您的 AppController 中,如果存在 :language 值,则覆盖。

    【讨论】:

    • 这对我来说似乎是一个快速而可靠的解决方案!我能想到的唯一其他合理的选择是覆盖 Router::connect 函数,以便在不存在时设置默认的 :language 值。但这可能有点矫枉过正。
    【解决方案2】:

    我的解决方案只是将 / 设置为特定语言,而其他所有内容都被标记 /:语言/

    这样我就没有重复路线。

    【讨论】:

      猜你喜欢
      • 2011-06-09
      • 2013-10-09
      • 2012-11-18
      • 2021-08-25
      • 2014-01-03
      • 2014-12-17
      • 1970-01-01
      • 1970-01-01
      • 2014-02-19
      相关资源
      最近更新 更多