Как перенаправить на ту же страницу при изменении пользовательской культуры - PullRequest
1 голос
/ 16 сентября 2011

На symfony 1.2.8 я застрял, чтобы перенаправить на ту же страницу при изменении пользовательской культуры.это означает, что если пользователь изменит культуру с какого-то действия, он должен вернуться к тому же действию, вместо того, чтобы перейти на страницу index, в которой я нашел вопрос для сравнения на SF, но он также перейдет на страницу индекса

Переключатель языка, перенаправить на текущую страницу с помощью symfony

EDIT Проблема в том, что мой запрос фактически поступил из Symfony из другого индексного файла, поэтому я не могу использовать $ this->перенаправления ($ request-> getReferer ());

Ответы [ 2 ]

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

Я взял этот урок (jobeet о i18n) и изменил функцию executeChangeLanguage следующим образом:

public function executeChangeLanguage(sfWebRequest $request)
  {
    $form = new sfFormLanguage(
        $this->getUser(),
        array('languages' => array('en', 'fr'))
    );

    $form->process($request);

    // added
    $url = $request->getReferer();
    $newUrl = $url;
    if ($request->getParameter('language') == 'fr') {
    $newUrl = str_replace('.com/en', '.com/fr', $url);
    }
    if ($request->getParameter('language') == 'en') {
    $newUrl = str_replace('.com/fr', '.com/en', $url);
    }
    return $this->redirect($newUrl);

    // old return
    // return $this->redirect('localized_homepage');
  }

Это грязный хак, но у меня это сработало.

1 голос
/ 16 сентября 2011

Самый простой способ - перенаправить на реферер.

//actions
$this->redirect($request->getReferer());

Вы также можете добавить URL текущей страницы в качестве параметра к URL изменения пользовательской культуры.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...