2011-10-10 163 views
1

我basicky遵循這個http://www.zendcasts.com/one-to-many-with-doctrine-2/2011/03/教程到步驟(源代碼可以從中下載的)。一切正常,所以我得到了2個實體 - 購買和用戶。如果我查詢用戶一切都很好,但如果我查詢購買,就像這樣:Zend框架,學說2 @ManyToOne

$entityManager->createQuery('select p from ZC\Entity\Purchase p where p.id = 1')->execute(); 

我會得到一個致命錯誤:

Fatal error: require() [function.require]: Failed opening required 'C:\xampp\htdocs\CoChces\application/../library/CC/Entity/Proxy\CCEntityCategoryProxy.php' (include_path='C:\xampp\htdocs\CoChces\application/../library;C:\xampp\htdocs\CoChces\library;.;C:\xampp\php\PEAR') in C:\xampp\htdocs\CoChces\library\Doctrine\ORM\Proxy\ProxyFactory.php on line 85 

但如果我評論此行採購:

/** 
* 
* @var User 
* @ManyToOne(targetEntity="User") 
* @JoinColumns({ 
* @JoinColumn(name="user_id", referencedColumnName="id") 
* }) 
*/ 
private $user; 

Everithing工作得很好。所以@ManyToOne註釋肯定會出現一些問題。任何人都知道如何處理它?也許有一些解決方法?

非常感謝答案..

我使用PHP 5.3.8

+0

您正在使用哪個版本的PHP?原則2需要PHP 5.3 ... – dinopmi

+0

是我使用PHP 5.3,我可以輕鬆查詢多對多,但多對一和OneToOne似乎是問題.. – user987220

+0

只是爲了記錄在案,許多zendcasts視頻是完全錯誤的,或者遺漏細節,導致最終的代碼無法正常工作。 –

回答

0

夫婦的事情...

  1. 您的註釋語法不似乎是正確的。嘗試

    /** 
    * @var User 
    * @ManyToOne(targetEntity="User") 
    */ 
    private $user; 
    

    @JoinColumns沒有在文檔中的任何地方出現。另外,當您使用默認值時,@JoinColumn註釋是多餘的。請參閱http://www.doctrine-project.org/docs/orm/2.1/en/reference/association-mapping.html#many-to-one-unidirectional

  2. 您的DQL查詢引用ZC名稱空間根目錄,但錯誤消息顯示爲CC。哪個是對的?

+0

感謝的建議,但它並沒有解決這個問題,我他猜測過時的Doctrine 2圖書館存在問題,John使用「2.0.0RC2」,因此它必須是一個錯誤,或者在使用ZF1的「Bisna」(也是過時)膠水中存在一個錯誤。 Doctrine2 ..將嘗試這兩個,我會寫解決方案,如果我會找到一個.. – user987220

+0

@ user987220我會開始至少使用最新的Doctrine 2.1穩定版本。 Bisna應用程序資源插件不應該存在任何問題。在點#任何評論2 – Phil

+1

好這個問題是與Bisna資源,這是過時的,可以在這裏找到在guilhermeblanco github上一個新問題:https://github.com/guilhermeblanco/ZendFramework1-Doctrine2至於配置我會建議:http://www.kurttest.com/zfa/bisna。html換句話說,問題解決了,謝謝大家 – user987220