0
我開始與Doctrine 2,我試圖使這個簡單的情況下工作:一個系列有一個標題,這是一個MultilingualText(封裝英文和法文標題)。Doctrine 2延遲加載將不起作用
我正在加載一個系列,但是當我嘗試獲得它的法語標題時,延遲加載不起作用。
這裏是系列代碼:
class Series {
/**
* @Id @Column(type="smallint", name="seriesId")
* @GeneratedValue
*/
private $seriesId;
/**
* @OneToOne(targetEntity="MultilingualText")
* @JoinColumn(name="title", referencedColumnName="multilingualTextId")
**/
private $title;
public function getTitle() {
return $this->title;
}
public function setTitle(MultilingualText $title) {
$this->title = $title;
}
}
現在MultilingualText代碼:
class MultilingualText {
/**
* @Id @Column(type="smallint", name="multilingualTextId")
* @GeneratedValue
*/
private $multilingualTextId;
/** @Column(type="text") */
private $frenchText;
/** @Column(type="text") */
private $englishText;
public function getFrenchText() {
return $this->frenchText;
}
public function setFrenchText($frenchText) {
$this->frenchText = $frenchText;
}
}
現在的加載,這不工作:
$series = $entityManager->find('Series', 1);
echo $series->getTitle()->getFrenchText();
但令人吃驚的,這確實有效:
$multilingualText = $entityManager->find('MultilingualText', 1);
echo $multilingualText->getFrenchText() . "<br/>";
$series = $entityManager->find('Series', 1);
echo $series->getTitle()->getFrenchText();
結果:
My French title
My French title
從這個測試中,我的結論是延遲加載並沒有在這方面的工作,但不知道爲什麼......
任何幫助,將不勝感激
感謝
墊