2015-11-19 74 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我认为应该作为一个新问题提出问题,因为问题是分开的,那么您在这个问题中已经提出了问题。 –