Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
cakephp 2.5路由器-URL中语言字符串的一部分_Cakephp_Router_Cakephp 2.5 - Fatal编程技术网

cakephp 2.5路由器-URL中语言字符串的一部分

cakephp 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.

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.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