2015-11-19 76 views
-1

我有一張表,我正在創建兩個實體。 一個實體用於我的一個核心包,用於許多項目。如何覆蓋Symfony2中的實體

對於新項目,我創建了新的捆綁包,並且我想在該實體中再添加一列。 任何人都可以請指導我如何重寫其他包中的實體。

+0

我不清楚。這個實體是否映射到你的數據庫?如果是這樣,數據庫已經有你正在創建的新列? –

+0

我想從entity2創建新列。 I.e. 我有表「用戶」 對於這個表我創建了5個字段的父實體。 現在我想添加額外的字段,並且因爲某些原因或技術設計我無法修改我的父實體。 所以,我需要爲同一個表創建另一個實體,我需要重寫父實體。 我將添加字段在子實體將在db中更新。 –

+1

您可以擴展您的原始父母用戶實體 –

回答

1

您可以將原始用戶實體擴展爲這樣的東西。

namespace XXXX; 

use Doctrine\ORM\Mapping as ORM; 
use XXXXX as BaseUser; 

/** 
* @ORM\Entity 
* @ORM\Table(name="User") 
*/ 
class User extends BaseUser 
{ 
    /** 
    * @var string 
    * 
    * @ORM\Column(name="newProperty", type="string", nullable=false) 
    */ 

    private $newProperty; 
    ..... 
    ..... 
} 

這將對所有屬性從BaseUser類,你可以在這個新類的附加屬性,你要創建。您也可以在這裏添加設置並獲取方法。

+0

這是擴展實體的完美解決方案,並且工作正常。 但現在我有一個問題,當我試圖使用命令更新架構 它會給出重複實體的錯誤。 –

+0

@AshishBhanderi我認爲應該作爲一個新問題提出問題,因爲問題是分開的,那麼您在這個問題中已經提出了問題。 –