2011-03-07 35 views
1

我寫我的實體,讓我們說模型/文件夾。我真的需要用Doctrine 2自己移動/寫實體嗎?

類似:

namespace Organisation\User; 
/** 
@Entity 
*/ 
class Customer { 

/** 
* @Column(type="integer") @GeneratedValue 
*/ 
protected $_id; 
} 

}

因此,我將我的實例化實體$customer = new \Organisation\User\Customer();

好了,但如果我用doctrine orm:generate-entities library/就會產生它下面的目錄下:

library/Organisation/User/Customer.php 

沒關係,但如果我看在代碼中,沒有任何註釋,因此當我嘗試使用它時,我得到了doctrine\ORM\Mapping\MappingException: Class Organisation\User\Customer is not a valid entity or mapped super class.,因爲沒有任何註釋。

所以我需要做的是刪除命名空間,生成到具有元數據信息的實體所在的目錄中,移動到我的庫文件夾,並添加命名空間來處理。

它看起來很醜,我錯過了什麼嗎?

編輯我忘了告訴ORM:生成實體不起作用遞歸的話,我甚至不能我的實體元數據

回答

0

中使用我的實際結構如果你寫你的實體類已經存在,你爲什麼試圖生成它們?

驅動新項目的典型方法是編寫註釋的實體類,並使用orm:schema-tool:create來生成數據庫模式。

我見過的大多數例子都是基於類的名稱空間名稱,將一些實體粘貼到庫/下的某個嵌套目錄中,就像您所描述的那樣。這通常是件好事,因爲它可以使用默認的Doctrine2自動加載器設置。

如果你不試圖將Doctrine2到一個已經存在的數據庫模式,我建議你簡單地把所有喜歡的庫//實體/ .PHP你的實體類文件的某個地方,並使用orm:schema-tool:updateorm:schematool:update管理數據庫爲你。

0

使用參數--generate-annotations