簡體   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