Symfony2和Doctrine - OneToMany只返回一个结果

时间:2014-02-17 11:32:52

标签: php symfony doctrine-orm entity

我有两个实体,提交和提交历史。当我试图从特定提交中获取SubmissionHistories时,它只返回一个,即使有更多条目。

知道为什么吗?

以下是实体。

//Entity Submission

 /**
 * @ORM\OneToMany(targetEntity="SubmissionHistory", mappedBy="submission")
 */
protected $histories;

public function __construct()
{
    $this->histories = new ArrayCollection();
}    

/**
 * Get histories
 *
 * @return Doctrine\Common\Collections\Collection 
 */
public function getHistories()
{
    return $this->histories;
}

然后,

//Entity SubmissionHistory


/**
 * @ORM\ManyToOne(targetEntity="Submission", inversedBy="histories")
 * @ORM\JoinColumn(name="hash_key", referencedColumnName="hash_key")
 */
protected $submission;

/**
 * Get submission
 *
 * @return SciForum\Version2Bundle\Entity\Submission 
 */
public function getSubmission()
{
    return $this->submission;
}

1 个答案:

答案 0 :(得分:0)

我发现了问题:

我将@Id设置为SubmissionHistory实体中的hash_key,这是错误的。通过这样做,所有结果都已折叠,就像我将它们按“Fields.id”分组一样。

通过将Id更改为id字段,事情完全正常。