【问题标题】:Sonata Admin - how to add Translation to one field and getID of the object?Sonata Admin - 如何将翻译添加到一个字段和对象的getID?
【发布时间】:2022-01-25 20:04:09
【问题描述】:

我的代码:

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

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

}

这会创建一个新的汽车对象并将其保存到我的数据库中,并且效果很好,但是在这部分代码中,我正在调用和翻译函数,该函数需要将 NAME 字段的翻译添加到我的翻译表中德语

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

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

    $this->translations[] = $translation;

    return $this;
}

这也可以,但是我无法获取objectId,所以我在数据库中的翻译表没有连接到我创建的对象的id,我有一个函数

$carsEvent->getId();

但总是返回 NULL

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

【问题讨论】:

    标签: php symfony translation sonata-admin sonata


    【解决方案1】:

    解决方案:

    /**
     * {@inheritdoc}
     */
    public function addTranslation(Translation $translation)
    {
    
        $translation->setLocale('de');
        $translation->setField('name');
        $translation->setObject($translation);
        $translation->setContent('FixedGermanName');
    
        $this->translations[] = $translation;
    
        return $this;
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-02-18
      • 2015-11-06
      • 1970-01-01
      • 2017-09-21
      • 2017-02-20
      • 2018-07-08
      • 2018-01-20
      • 2015-10-09
      相关资源
      最近更新 更多