我是Symfony2的新手,我正在寻找选择我的主机名TLD的语言.(以适当的方式)
我已经找到了一些方法来改变语言的形式:http://symfony.com/blog/play-with-the-user-language
但我需要能够在新用户连接时选择语言:
现在我添加一个触发每个请求的服务侦听器:
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)
我想知道是否有另一种方法来访问监听器中的参数或以其他方式选择具有主机名的语言
谢谢你的回答.
我正在尝试在Symfony2中翻译我的网址路由.
我已经知道tld会改变我的应用程序的语言.
例如:
该翻译适用于模板中的静态单词
{% trans %}Hello %name%{% endtrans %}
http://symfony.com/doc/2.0/book/translation.html#translations-in-templates
但我正在尝试翻译路由.
例如:
所有网址都采取相同的行动
我没有找到使用Symfony2做到这一点的好方法
ps:我看到这篇文章Zend翻译URL和语言切换器它与Zend完全相同的问题
我试图在级联中保存一些对象并检索它。我有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)