繁体   English   中英

Sonata Admin - 如何将翻译添加到 object 的一个字段和 getID?

[英]Sonata Admin - how to add Translation to one field and getID of the object?

我的代码:

public function create($object): void
{
    /** @var CarsEvent $object */
    $carsEvent = $object;
    $em          = $this->getEntityManager($carsEvent );

    $carsEvent->addTranslation(new CarsEventTranslation());
    
    $em->persist($sportsEvent);
    $em->flush();

}

这将创建一辆新车 object 并将其保存到我的数据库中,并且工作正常,但是在这部分代码中我正在调用和翻译 function 需要将 NAME 字段的翻译添加到我的德语翻译表中

/**
 * {@inheritdoc}
 */
public function addTranslation(Translation $translation)
{

    $translation->setLocale('de');
    $translation->setField('name');
    $translation->setContent('FixedGermanName');

    $this->translations[] = $translation;

    return $this;
}

这也有效,但我无法获取 objectId,因此我在数据库中的翻译表与我创建的 object 的 id 没有连接,我有一个 function

$carsEvent->getId();

但总是返回 NULL

我的问题是如何获取 object id,以便我也可以将该值存储在我的数据库中?

解决方案:

/**
 * {@inheritdoc}
 */
public function addTranslation(Translation $translation)
{

    $translation->setLocale('de');
    $translation->setField('name');
    $translation->setObject($translation);
    $translation->setContent('FixedGermanName');

    $this->translations[] = $translation;

    return $this;
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM