【问题标题】:Cakephp 3 : Localization RoutingCakephp 3:本地化路由
【发布时间】:2016-03-29 04:48:20
【问题描述】:

我添加如下路线

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

我有两种语言src/Locale/jp,另一种是src/Locale/fr

添加路由配置后我在URL下面尝试过

project/jp/tests/index 

它给了我错误JpController not found。

如何在 cakephp 3 中配置本地化路由。

更新:

在过滤器之前我添加了下面的代码,但语言没有改变

if($this->request->params['language']=='jp'){
      Configure::write('Config.language','jp');
}

【问题讨论】:

    标签: cakephp cakephp-3.0 cakephp-3.x


    【解决方案1】:

    仔细看看你正在传递什么,jp,这是两个字符,现在看看你的正则表达式,它需要 {3} 字符 - 因此,路线将不匹配。

    附带说明,文件夹名称应为Locale,而不是local

    【讨论】:

    • 我只是更新了我的问题,我添加了 Configure::write('Config.language','jp');在应用程序控制器中的过滤方法之前。但语言并没有改变。但是,如果我在 bootstrap.php 中尝试默认设置,它会发生变化。
    • @AlimonKarim 那是因为你没有使用 CakePHP 2.x。 3.x 中不再有Config.languagebook.cakephp.org/3.0/en/appendices/…。还要检查 book.cakephp.org/3.0/en/development/…
    • 谢谢你我明白了。它将是 I18n::locale('jp');在 cakephp 3.
    猜你喜欢
    • 2011-03-11
    • 2019-01-24
    • 2020-02-23
    • 2016-04-07
    • 1970-01-01
    • 2016-05-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多