我已經看過堆棧溢出和網絡上其他地方的字面問題/答案,但無法找到解決此問題的辦法。Symfony 2與Doctrine之間的一對多關係
在我解釋這個問題,我有:
- 剝去我的實體,從而使他們只有
- 已清除學說查詢緩存/元數據緩存
- 降到最低的屬性和方法,重新架構
- 檢查我的拼寫
我有以下兩個實體:
<?php
namespace Docker\ApiBundle\Entity;
use Doctrine\ORM\Mapping as ORM;
/**
* @ORM\Entity
*/
class Source
{
/**
* @ORM\Id
* @ORM\Column(type="integer")
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
/**
* @ORM\Column(type="integer")
* @ORM\ManyToOne(targetEntity="Project",inversedBy="sources")
* @ORM\JoinColumn(referencedColumnName="id")
*/
private $project;
}
<?php
namespace Docker\ApiBundle\Entity;
use Doctrine\ORM\Mapping as ORM;
/**
* @ORM\Entity
*/
class Project
{
/**
* @ORM\Id
* @ORM\Column(type="integer")
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
/**
* @ORM\OneToMany(targetEntity="Source", mappedBy="project")
*/
private $sources;
public function __construct() {
$this->sources = new ArrayCollection();
}
public function getSources() {
return $this->sources;
}
}
因此,許多'來源'可以屬於一個'項目'。
在我的控制,我有:
$em = $this->getDoctrine()->getManager();
$project = $em->find('Docker\ApiBundle\Entity\Project', 1);
$sources = $project->getSources()->toArray();
我已經試過很多東西,但我總是得到:
Notice: Undefined index: project in /.../www/vendor/doctrine/orm/lib/Doctrine/ORM/Persisters/BasicEntityPersister.php line 1577
就像我說的,我知道有很多的問題,到處約這,但沒有一個接受的答案解決了我的問題。
這一切對於使用Doctrine2來說都非常重要,所以不知道我做錯了什麼 - 它可能是非常明顯的。
任何幫助,將不勝感激。
$ project var not null?或者當 - > getSources() - > toArray();那崩潰? – Sybio
$ project var不爲空,是 - 當我在控制器中執行'$ sources = $ project-> getSources() - > toArray();'時,會導致異常。如果我拿出來,那就沒問題。 – JonB