0
我有兩個表之間的關係通過第三,額外的行(或多個)想在這個question主義inversedBy字段包含PersistentCollection
/** @Entity
*/
class Illness {
/** @Id @GeneratedValue @Column(type="integer") */
private $illness_id;
/** @Column(type="string") */
private $name;
/** @OneToMany(targetEntity="Illness_Symptom_Association", mappedBy="Illness") */
private $symptAssoc;
public function __construct()
{
$this->symptAssoc = new \Doctrine\Common\Collections\ArrayCollection();
}
public function setName($val)
{
$this->name = $val;
}
public function getName()
{
return $this->name;
}
public function getSymptAssoc()
{
return $this->symptAssoc;
}
}
加入表第三PARAM S(類似優先級)
/**
* @Entity
*/
class Illness_Symptom_Association {
protected $illness_id;
/**
* @Id()
* @ManyToOne(targetEntity="Illness", inversedBy="symptAssoc")
* @JoinColumn(name="illness_id", referencedColumnName="illness_id", nullable=false)
*/
protected $illness;
/**
* @Id()
* @ManyToOne(targetEntity="Symptom", inversedBy="symptAssoc")
* @JoinColumn(name="symptom_id", referencedColumnName="symptom_id")
* */
protected $symptom;
/** @Column(type="integer") */
protected $s;
public function setIllness(Illness $illness)
{
$this->illness = $illness;
}
/**
*
* @return Illness
*/
public function getIllness()
{
return $this->illness;
}
public function setSymptom(Symptom $sympt)
{
return $this->symptom = $sympt;
}
public function getSymptom()
{
return $this->symptom;
}
public function setS($s)
{
$this->s = $s;
}
public function getS()
{
return $this->s;
}
}
末實體症狀:
/**
* @Entity
*/
class Symptom {
/** @Id @GeneratedValue @Column(type="integer") */
protected $symptom_id;
/** @Column(type="string", unique=true) */
protected $name;
/** @OneToMany(targetEntity="Illness_Symptom_Association", mappedBy="symptom") */
protected $symptAssoc;
public function setName($name)
{
$this->name = $name;
}
public function getName($name)
{
return $this->name;
}
}
但
$illness = $em->getRepository('Entity\Illness')->find($id);
$illness->getSymptAssoc();
回報PersistentCollection oject。
我怎樣才能得到症狀列表s參數從連接表嗎?
症狀propertye ** ** Illness_Symptom_Association內部symptAssoc集合返回** DoctrineORMModule \ Proxy \ __ CG __ \ Application \ Entity \ Symptom **而不是**症狀**映射器。這可能是什麼原因? – yurisnk
這是生成的用於延遲加載實體的症狀的子類;您可以像使用Symptom對象一樣使用它。 – arnaud576875