小编use*_*102的帖子

TLD的Symfony2语言

我是Symfony2的新手,我正在寻找选择我的主机名TLD的语言.(以适当的方式)

我已经找到了一些方法来改变语言的形式:http://symfony.com/blog/play-with-the-user-language

但我需要能够在新用户连接时选择语言:

  • www.hostname.fr => fr
  • www.hostname.it =>它
  • www.hostname.co.uk => en

现在我添加一个触发每个请求的服务侦听器:

services:
    kernel.listener.domain_langue_listener:
        class: acme\DemoBundle\Listener\DomainLangueListener
        tags:
            - { name: kernel.event_listener, event: kernel.request, method: onDomainParse }
Run Code Online (Sandbox Code Playgroud)

上课:

namespace acme\DemoBundle\Listener;
class DomainLangueListener
{
    public function onDomainParse(Event $event)
    {
        $request = $event->getRequest();
        $session = $request->getSession();

        preg_match('/[^.]+$/', $request->getHost(), $match);
        $session->setLocale($match[0]);
    }
}
Run Code Online (Sandbox Code Playgroud)

这个监听器有效,但我想使用一些参数来定义哪个TLD与哪种语言匹配,但在监听器中我不能像这样访问容器:

$this->container->getParameter('tld_allowed');
Run Code Online (Sandbox Code Playgroud)

我想知道是否有另一种方法来访问监听器中的参数或以其他方式选择具有主机名的语言

谢谢你的回答.

locale listener symfony

10
推荐指数
1
解决办法
863
查看次数

Symfony2翻译URL和路由

我正在尝试在Symfony2中翻译我的网址路由.

我已经知道tld会改变我的应用程序的语言.

例如:

  • domain.com => local ="en_US"
  • domain.fr => local ="fr_FR"
  • domain.it => local ="it_IT"

该翻译适用于模板中的静态单词 {% trans %}Hello %name%{% endtrans %} http://symfony.com/doc/2.0/book/translation.html#translations-in-templates

但我正在尝试翻译路由.

例如:

  • domain.com/user => FrontBundle:默认值:user
  • domain.fr/utilisateur => FrontBundle:默认:用户
  • ...

所有网址都采取相同的行动

我没有找到使用Symfony2做到这一点的好方法

ps:我看到这篇文章Zend翻译URL和语言切换器它与Zend完全相同的问题

url routing translate symfony

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

EntityManager保存并刷新

我试图在级联中保存一些对象并检索它。我有3个对象超过3个实体。

实体:

class Order
{
    /**
     * @var integer $id
     *
     * @ORM\Column(name="id", type="integer")
     * @ORM\Id
     * @ORM\GeneratedValue(strategy="AUTO")
     */
    protected $id;

    /**
     * @var object $basket
     *
     * @ORM\OneToOne(targetEntity="Entity\Basket", inversedBy="order")
     */
    protected $basket;
...
}

class Basket
{
    /**
     * @var integer $id
     *
     * @ORM\Column(name="id", type="integer")
     * @ORM\Id
     * @ORM\GeneratedValue(strategy="AUTO")
     */
    protected $id;

    /**
     * @var array $declinations
     *
     * @ORM\OneToMany(targetEntity="Entity\BasketDeclination", mappedBy="basket")
     */
    protected $declinations;

    /**
     * Order owner (reversed side)
     * 
     * @var OrderClient $order
     * 
     * @ORM\OneToOne(targetEntity="Entity\Order", …
Run Code Online (Sandbox Code Playgroud)

entitymanager symfony doctrine-orm

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