嗯,我知道这个问题被问了很多次,但我保证我会把它们都读出来......
我使用StofDoctrineExtensions bundle。它的配置似乎没问题,因为当我使用locale default(fr)添加我的类别时,它可以工作。
但是,当我想用英语(en)添加翻译时,表ext_translations
中与slug相关的行会一直显示NULL
...不知道原因。
我的实体:
/**
* @Gedmo\Slug(fields={"name"})
* @ORM\Column(length=255, unique=true)
* @Gedmo\Translatable
*/
private $slug;
/**
* @var string
*
* @Gedmo\Translatable
* @ORM\Column(name="name", type="string", length=255)
*/
private $name;
我的控制器:
$category->setDateUpd(time());
$category->setTranslatableLocale($locale);
$category->getImage1()->setTranslatableLocale($locale);
$category->getImage2()->setTranslatableLocale($locale);
$em->persist($category);
$em->flush();
ext_translations表的示例:
id: 31
locale: en
object_class: Bliss\ArticleBundle\Entity\Category
field: name
foreign_key: 14
content: South India
id: 33
locale: en
object_class: Bliss\ArticleBundle\Entity\Category
field: slug
foreign_key: 14
content: NULL
如果您需要更多信息,请与我们联系。
答案 0 :(得分:1)
我想我需要发布StackOverflow才能在2天后找到答案......好吧,我还是很开心!
我更新了监听器:DoctrineExtensionListener,并在可翻译行之前添加了缓存行:
public function onLateKernelRequest(GetResponseEvent $event)
{
$sluggable = $this->container->get('gedmo.listener.sluggable');
$translatable = $this->container->get('gedmo.listener.translatable');
$translatable->setTranslatableLocale($event->getRequest()->getLocale());
}
谢谢你的时间, 布利斯