drvonr6573 2017-10-13 10:05
浏览 101
已采纳

symfony @oneToMany关系仅返回集合中的最后一个对象

I have a situation and not really sure what I'm doing wrong. in Sumfony 3.3 I've created a relation between entity Page and Language, where Page is related to multiple Languages, and when I search for a Page and get Page object but property Languages returns collection with only last Language object. No matter how many objects are there in collection it always returns last.

Page Entity:

/**
 * @ORM\OneToMany(targetEntity="Language", mappedBy="page", cascade={"ALL"}, indexBy="page_id")
 */
private $languages;

Language entity:

/**
 * @ORM\ManyToOne(targetEntity="Page", inversedBy="languages")
 */
private $page;

public function addLanguage(\AppBundle\Entity\Langaugee $language)
{
    $this->languages[] = $language;

    return $this;
}

public function removeLanguage(\AppBundle\Entity\Language $language)
{
    $this->$languages->removeElement($language);
}

public function getLanguages()
{
    return $this->languages;
}

Page object is fetching in PageService:

public function getPageByName($name)
{
return $this->pageRepository->findBy(array("name"=>$name));
}

Since property $languages by default set on lazy, JMS serializer when serializes Page object it's fetching languages collection

Did anyone had this problem?

  • 写回答

1条回答 默认 最新

  • du9826 2017-10-13 20:08
    关注

    After thorough debugging, I figure it out that indexBy is misused here. Defined indexBy = page_id provided always the same value so every record that is mapped to entity in SimpleObjectHydrator overrun the existing record, leaving only last added Language object in collection

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 sqlite 附加(attach database)加密数据库时,返回26是什么原因呢?
  • ¥88 找成都本地经验丰富懂小程序开发的技术大咖
  • ¥15 如何处理复杂数据表格的除法运算
  • ¥15 如何用stc8h1k08的片子做485数据透传的功能?(关键词-串口)
  • ¥15 有兄弟姐妹会用word插图功能制作类似citespace的图片吗?
  • ¥200 uniapp长期运行卡死问题解决
  • ¥15 latex怎么处理论文引理引用参考文献
  • ¥15 请教:如何用postman调用本地虚拟机区块链接上的合约?
  • ¥15 为什么使用javacv转封装rtsp为rtmp时出现如下问题:[h264 @ 000000004faf7500]no frame?
  • ¥15 乘性高斯噪声在深度学习网络中的应用