Nano Hash - криптовалюты, майнинг, программирование

Как перенаправить на ту же страницу при изменении культуры пользователя

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

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

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

16.09.2011

  • Не идеальный способ, но вы можете использовать AJAX, чтобы изменить язык, а затем обновить страницу. 16.09.2011
  • Я думаю, что принудительное перенаправление на домашнюю страницу, когда пользователь меняет язык, является очень очень плохим выбором для UX. Я не понимаю, почему в руководстве по работе это сделано таким образом. 27.12.2011

Ответы:


1

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

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

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

16.09.2011
  • проблема в том, что мой запрос поступает из symfony на самом деле из другого индексного файла, поэтому я не могу использовать $this->redirect($request->getReferer()); 16.09.2011
  • В symfony 2.x вы можете получить реферер следующим образом: $request-›headers-›get('referer'); 16.06.2014
  • В Symfony ›= 2.4 вы можете сделать return $this->redirect($request->getUri()); и получить $request, передав его в аргументе метода (чтобы избежать выполнения $requestStack->getMasterRequest()) 04.02.2015

  • 2

    Я взял это руководство (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');
      }
    

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

    27.12.2011
    Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..