2011-12-08 3 views
0

언어 접두사 URL (site.com/en/controller/actionsite.com/fr/controller/action 등)로 일반적인 URL을 리디렉션하지만 누군가가없이 언어를 URL에 를 입력하면, 내가로 리디렉션하려는 방법 언어가있는 URL. 따라서 site.com/controller/actionsite.com/xx/controller/action으로 리디렉션됩니다. 여기서 xx은 세션 (또는 쿠키)에 저장되는 언어를 지정하는 값입니다.CakePHP의 지도자 : 나는 언어 접두사 URL이 큰 작업 한

$this->params 배열의 language 색인을 조회하고 찾지 못하면 그냥 리디렉션 할 수 있습니다. 뭔가 같은 :

if (!isset($this->params['language']) { 
    $this->redirect(array('controller' => $this->controller, 'action' => $this->action, 'language' => $this->Session->read('Config.language'))); 
} 

그러나이 문제는 모든 POST 또는 GET 데이터가 삭제된다는 것입니다.

무엇이 누락 되었습니까?

감사합니다.

답변

1

이 경우 엄청난 전문가는 아니지만 항상 POST 데이터를 리디렉션하는 것이 좋습니다. 따라서 언어를 확인하기 전에 POST 데이터로 수행해야하는 작업을 수행 한 다음 URL에 적절한 언어로 리디렉션을 수행하십시오.

이 봐 : Insert cakephp POST params into URL

또한 그것을 수행하기 위해 재> GET 데이터를 this-> PARAMS를보고 $ this- 해당 전달할 수 있습니다.

+0

동의. 언제든지 게시물을 리디렉션하고 데이터를 가져올 수 있으므로 삭제하는 것에 대해 걱정할 필요가 없습니다. – swiecki