如何在Symfony2中的实体中添加字段

时间:2012-06-19 10:29:11

标签: symfony

我尝试在实体中添加cahmps。我有这段代码:

/**
* @var integer $colorevent
* @ORM\Column(name="colorevent", type="integer")
*/
private $colorevent;

/**
* Get colorevent
* @return integer 
*/ 
public function getColorevent()
{
    return $this->colorevent;
}

/**
* Set colorevent
* @return integer 
*/
public function setColorevent($colorevent)
{
    return $this->colorevent = $colorevent ;
}

我运行这些命令:

php app/console doctrine:schema:update
php app/console doctrine:schema:update --dump-sql
php app/console doctrine:schema:update --force

呈现此消息:

  

没有任何更新yopur数据库已经与当前同步   实体元数据

如何在实体中添加字段?

3 个答案:

答案 0 :(得分:2)

你是如何在第一次生成实体类的?

实体文件是通过doctrine:generate:entities生成的,那么您需要做的是:

  1. 更新Resources/config/doctrine/XXXXXXXXX,其中xxxx是实体名称。
  2. 运行app/console doctrine:generate:entity。这将重新生成php实体文件,以及私有属性getter和setter。
  3. 运行php app/console doctrine:schema:update并更新数据库
  4. 根据您使用的格式(我使用的是yml)可能会有一些变化,但最重要的是doctrine:schema:update需要在当前和缓存(元数据)实体对象之间找到更改。

答案 1 :(得分:1)

每个实体必须具有Entity注释

use Doctrine\ORM\Mapping as ORM;

/**
 * @ORM\Entity
 */
class MyEntity
{
    // some code
}

我还建议使用提供的控制台工具来创建实体。

app/console doctrine:generate:entity

有关详细信息,请阅读官方书籍(DoctrinePropel)。

答案 2 :(得分:0)

如果您正在使用其他两个答案中描述的yaml或注释,则可以使用doctrine命令。但是,该命令必须包含实体名称:

php app/console doctrine:generate:entities AcmeMyBundle:Customer