cakephp 2.5路由器-URL中语言字符串的一部分
CakePHP版本2.5.2cakephp 2.5路由器-URL中语言字符串的一部分,cakephp,router,cakephp-2.5,Cakephp,Router,Cakephp 2.5,CakePHP版本2.5.2 配置语言“spa” 如果我在 mydomain.com/backoffice 然后我重新加载(ctrl-r)我再次得到 mydomain.com/backoffice 如果我在最后调用UsersController in action deleteCache: return$this->redirect('/backoffice') 我明白了 mydomain.com/users/sbackoffice 请在backoffice之前注意“s”。这似乎是config.
配置语言“spa” 如果我在
mydomain.com/backoffice
然后我重新加载(ctrl-r)我再次得到
mydomain.com/backoffice
如果我在最后调用UsersController in action deleteCache:return$this->redirect('/backoffice')代码>
我明白了
mydomain.com/users/sbackoffice
请在backoffice之前注意“s”。这似乎是config.language的一部分
如果我将Config.language设置为“eng”,我会得到
mydomain.com/users/ebackoffice
现在请注意后台之前的“e”
My routes.php:
Router::connect('/backoffice', array('controller' => 'users', 'action' => 'backoffice'));
Router::connect('/:language/:controller/:action/*',
array(),
array('language' => 'eng|spa')
);
Router::connect('/:language/:controller',
array('action' => 'index'),
array('language' => 'eng|spa')
);
Router::connect('/:language', array('controller' => 'technologies', 'action' => 'home'),
array('language' => 'eng|spa')
);
有什么想法吗?
如何调试它?您可以尝试return$this->redirect(数组('controller'=>'users','action'=>'backoffice')
这让我想到了/eng/users/backoffice
。问题是,代码中有很多重定向,比如return$this->redirect('/backoffice')代码>我想在不更改所有重定向的情况下从routes.php解析它。我想找出语言代码中“一个字母”的原因。您必须更改这些重定向。第一次做得不对是你的错。所有站点内部链接都应该使用数组表示法,这正是您现在遇到的原因。路由器无法神奇地知道这个字符串需要加上语言前缀。好的,谢谢,现在我明白了-我将全部改为数组表示法。这很有效。谢谢Salines和burzum