簡體   English   中英

Doctrine2:動態實體關聯,許多targetEntity由一個字段映射

[英]Doctrine2: dynamic entity associations, many targetEntity mapped by one field

我有一個名為Event的實體

  • 字段“associatedEntity”,包含Bundle中另一個實體的類名
  • 該特定“associatedEntity”實體的字段“targetId”

我現在想以某種方式訪問​​我的Event-Entity中的這個目標實體,但我現在確定如何做到這一點。 我想使用類似的東西訪問樹枝模板中的不同目標實體

{% if event.getClassName() == "User" %}
  {{ if event.getUser().getName() }}
{% endif %}

編輯:為了清楚,到目前為止我唯一感興趣的是如何正確地創建關系。 在ORM世界之外,您可能會使用連接語句。 就好像我有一個由一個字段映射的目標實體。

到目前為止我使用實體存儲庫和DI加載相關的實體,但我發現丑陋知道有一個JOIN語句,我可以使用:

public function getUpcomingEvents(){
        $query = $this->createQueryBuilder('E')
        ->where('E.resolved = false')
        ->orderBy('E.notify_date', 'ASC')
        ->setMaxResults( $limit );
    $res = $query->getQuery()->getResult();
    $res = $this->attachAssociatedObjects($res);
    return $res;
}

public function attachAssociatedObjects($res){
    foreach ($res as $key => $entity) {
            $assocObject = $this->getEntityManager()->getReference('My\Bundle\Entity\\'.$entity->getClassName(), $entity->getTargetId());
            $res[$key]->setAssociatedObject($assocObject);
    }
    return $res;
}

Twig 屬性功能是您所需要的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM