CakePHP Gurus: как перенаправить общий URL-адрес к URL-адресу с префиксом языка - PullRequest
0 голосов
/ 08 декабря 2011

У меня отлично работают URL-адреса с префиксом языка (site.com/en/controller/action и site.com/fr/controller/action и т. Д.), Но если кто-то вводит URL без языка, я хочу перенаправить на 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.

Чего мне не хватает?

Спасибо!

1 Ответ

1 голос
/ 08 декабря 2011

Я не большой эксперт в этом деле, но я понял, что это хорошая практика - всегда перенаправлять данные POST. Поэтому, прежде чем проверять язык, сделайте то, что вы должны сделать с данными POST, и после этого выполните перенаправление с соответствующим языком в URL.

Посмотри это: Вставка параметров POST для CakePHP в URL

Вы также можете посмотреть this-> params для получения данных GET и передать их в $ this-> redirect, чтобы продолжить их.

...