Symfony2,Doctrine,保留预定义的值

时间:2014-04-25 21:36:47

标签: symfony doctrine persist

有一种简单的方法来持久化所有值= 0的实体吗?我的实体有非常多的行...输入 - > gt;> setBlabla(0)为行数..puh ..

是否有“更容易”的方式?

此致

2 个答案:

答案 0 :(得分:2)

学说文档建议通过实体属性定义默认值:

class User
{
    const STATUS_DISABLED = 0;
    const STATUS_ENABLED = 1;

    private $status = self:STATUS_DISABLED;
}

请参阅常见问题解答http://docs.doctrine-project.org/projects/doctrine-orm/en/latest/reference/faq.html#how-can-i-add-default-values-to-a-column

我更愿意在实体类构造函数中设置所有属性的默认值:

class User
{
    const STATUS_DISABLED = 0;
    const STATUS_ENABLED = 1;

    private $status;

    public function __construct()
    {
        $this->status = self::STATUS_DISABLED;
    }

}

答案 1 :(得分:0)

您可以为每个字段设置默认值,并使用nullable=false强制插入默认值;像这样

@ORM\Column(name="column_name", type="integer", nullable=false, options={"default" = 0})

或者您可以创建服务prePresist,以便在持续触发之前将“0”值设置为空字段。看看
Doctirn2 Lifecycle Events
Symfony2 Event Listener