相关疑难解决方法(0)

Symfony 3将所有路由重定向到当前区域设置版本

我正在开发一个symfony应用程序,我的目标是无论用户在哪个页面上都会导航到页面的语言环境版本.

例如,如果用户导航到"/"主页,它将重定向到"/ en /"

如果它们位于"/ admin"页面,它将重定向到"/ en/admin",以便_locale从路径设置属性.

此外,如果他们从用户浏览器访问/ admin,则需要确定区域设置,因为没有确定区域设置,因此它知道要重定向到哪个页面.

目前我的默认控制器如下所示,因为我正在测试.我正在使用开发模式和分析器来测试翻译是否正常工作.

在此输入图像描述

<?php

namespace AppBundle\Controller;

use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Symfony\Component\HttpFoundation\Request;

class DefaultController extends Controller
{
    /**
     * @Route("/", name="homepage")
     * @Route("/{_locale}/", name="homepage_locale")
     */
    public function indexAction(Request $request)
    {
        $translated = $this->get('translator')->trans('Symfony is great');

        // replace this example code with whatever you need
        return $this->render('default/index.html.twig', [
            'base_dir' => realpath($this->container->getParameter('kernel.root_dir').'/..'),
            'translated' => $translated
        ]);
    }
}
Run Code Online (Sandbox Code Playgroud)

如果用户在那里导航,则此当前方法将使用户保持"/",但我希望将其重定向到"/ en /".这也适用于其他页面,如/ admin,或/ somepath/pathagain/article1(/ en/admin,/ en/somepath/pathagain/article1)

我该怎么做?

我读过的参考文献没有帮助:

Symfony2在路由中使用默认语言环境(一种语言的一个URL)

Symfony2路由中的默认语言环境

::更新::

我还没有解决我的问题,但我已经接近并学会了一些提高效率的技巧.

DefaultController.php …

php locale symfony symfony-routing

4
推荐指数
2
解决办法
1万
查看次数

标签 统计

locale ×1

php ×1

symfony ×1

symfony-routing ×1