Symfony2不会保留表中的所有列

时间:2014-02-19 16:05:00

标签: php sql symfony orm doctrine-orm

我有一个包含多个字段的实体。现在我已经在我的数据库中添加了一个新的日期时间列“date”。

但是当我向数据库添加一个新的寄存器时,这个字段的值总是为null,从未捕获我放在表单中的值。

实体具有正确的值,但如果我看到所有值,则实体管理器有一个名为“SelectColumnListSQL”的变量,并且在此SQL操作中,不会出现“date”字段。

日志不会写任何错误,只在我的数据库中存储其余字段,但不是。

如果干草使用dev enviromnent,在这种情况下一切正常:S

任何想法??

---实体信息---

 /**
 * @var \DateTime
 *
 * @ORM\Column(name="date", type="datetime", nullable=false)
 */
protected $date;

 /**
 * Set date
 *
 * @param \DateTime $date
 * @return Quotes
 */
public function setDate($date)
{
    $this->date = $date;

    return $this;
}

/**
 * Get date
 *
 * @return \DateTime 
 */
public function getDate()
{
    return $this->date;
}

谢谢!

3 个答案:

答案 0 :(得分:0)

请具体使用ORM(Doctrine,Propel ......)

您是否已经运行以下命令?

php app/console doctrine:generate:entities 
php app/console doctrine:schema:update

您必须在Bundle中的Entity目录中包含信息

答案 1 :(得分:0)

我很确定你忘了一个setter方法或者方法拼写错误。

有关详细信息,请参阅下面的示例。

假设您拥有此实体

class Entity{
    // ...
    private field;


    // the getter and setter methods
    public function getField(){
    // ...
    }

    public function setField(){ // I guess this function is missing or misspelled
    // ...
    // If the function is missing or misspelled, 
    // doctrine will not take into account the changes you did for that field
    }

}

最好的,

答案 2 :(得分:0)

通过以下命令检查您是否完全更新了数据库:

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