2014-11-01 56 views
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 

從這個測試中,我的結論是延遲加載並沒有在這方面的工作,但不知道爲什麼......

任何幫助,將不勝感激

感謝

回答

0

我找到的東西:開發模式設置爲假... 這條簡單的線條非常重要!

$isDevMode = true;