我是CakePHP的新手 我试图在用户输入的情况下将语言附加到URL: mydomain(dot)com / users
然后,网址必须更改为http://mydomain.com/eng/users
好吧,我正在使用Translate行为,在我的routes.php文件中我有:
Router::connect('/:lang/:controller/*', array(), array('lang' => '[a-z]{3}'));
Router::connect('/:lang/:controller/:action/*', array(), array('lang' => '[a-z]{3}'));
好的到目前为止一切都很完美。 但是在我的contorllers / AppController.php中,我尝试附加网址,我收到错误
这就是我在afterFilter函数中所拥有的:
if (empty($this->params['lang']) ){
//Redirect to a language url
$this->redirect(array(
'lang'=> 'eng',
'controller' => $this->params['controller'],
'action' => $this->params['action'])
);
}
这可以,但是当我尝试访问http:/mydomain.com/users/View/4时 在网址中我可以看到http:/ mydomain(dot)com / eng / users / View / 4 但我在浏览器中看到的是http:/ mydomain(dot)com / users / View /
我的问题是:达到我需要的最佳方式是什么? 这是一个插件吗?或者我如何在CakePHP中处理这个?
答案 0 :(得分:0)
那问题出在我的router.php
上我有---> Router :: connect('/:lang /:controller / ',array(),array('lang'=>'[a-z] {3}')); Router :: connect('/:lang /:controller /:action / ',array(),array('lang'=>'[a-z] {3}'));
正确的方法是-----> Router :: connect('/:lang /:controller /:action / ',array(),array('lang'=>'[a-z] {3}')); Router :: connect('/:lang /:controller / ',array(),array('lang'=>'[a-z] {3}'));