我的语言前缀网址效果很好(site.com/en/controller/action
和site.com/fr/controller/action
等),但如果有人输入网址而没有语言,我想重定向到具有该语言的URL。因此,site.com/controller/action
重定向到site.com/xx/controller/action
,其中xx
是指定语言的值,存储在会话(或Cookie)中。
我怀疑我只能在language
数组中查找$this->params
索引,如果找不到,只需重定向即可。类似的东西:
if (!isset($this->params['language']) {
$this->redirect(array('controller' => $this->controller, 'action' => $this->action, 'language' => $this->Session->read('Config.language')));
}
但我担心的是,这会丢弃任何POST或GET数据。
我错过了什么?
谢谢!
答案 0 :(得分:1)
我不是这方面的专家,但我知道总是重定向POST数据是个好习惯。因此,在检查语言之前,请执行您应该对POST数据执行的操作,然后在网址中使用适当的语言进行重定向。
看看这个: Insert cakephp POST params into URL
您还可以查看此> params获取GET数据并将其传递给$ this->重定向以将其传输。