2015-09-07 27 views
1

我有一個exisiting數據庫至極我succcesfully導入到Symfony2的捆綁使用doctrine:mapping:import學說:生成:實體 - 無法重新聲明<函數名>

的表使用下劃線命名。其中一個表有這樣兩列:

- ab_desc 
- abd_esc 

導入後,屬性轉換爲駝峯,看起來像這樣

- $abDesc 
- $abdEsc 

這是absolutley好,因爲PHP的變量是區分大小寫的。

但如果我現在嘗試使用generet doctrine:generate:entities 主義實體試圖創建這方法:

- function getabDesc() 
- function getabdEsc() 

從而導致錯誤

cannot redclare "getabDesc()" 

因爲PHP的功能是不區分大小寫.. 。

我現在可以自己寫getter和setter,但我想知道是否有更好的解決方案,如tel ling學說使用下劃線屬性或類似的東西。

謝謝!

+0

一件事。 –

+0

@Frankbeen Doctrine不能很好地處理公共財產。 – Gerry

+0

你可能是正確的格里。我總是使用getter和setter以及邏輯屬性名稱。 –

回答

0

你可以這樣做:

,來了我是忘了getter和setter,並使公共屬性,而不是私人
/** 
* @ORM\Entity(table="ab") 
*/ 
class Ab { 
    /** 
    * @ORM\Column(name="ab_desc") 
    */ 
    protected $abDesc; 

    /** 
    * @ORM\Column(name="abd_desc") 
    */ 
    protected $abdDesc; 

    public getAbDesc() { 
     return $this->abDesc; 
    } 

    public getAbdDesc() { 
     return $this->abdDesc; 
    } 

} 
+0

我不明白你的意思。我的房產是 '$ abDesc'和'$ abdEsc'。 同名但不同用法的大寫和小寫字母。 – user1915746

+0

我總是創造getters和setter。我始終遵循以下簡單規則:獲取+大寫的屬性名稱並設置+大寫的名稱。在註解中,我可以設置表格中的字段名稱,該名稱可以與屬性名稱完全不同。 – RaulFerriz