doctrine中的默认值


如何在Doctrine 2中设置默认值?

数据库默认值不是“可移植的”支持的。使用数据库默认值的唯一方法是通过columnDefinition映射属性,您可以为该字段映射到的列指定SQL代码片段(DEFAULT原因包含)。

您可以使用:

<?php
/**
 * @Entity
 */
class myEntity {
    /**
     * @var string
     *
     * @Column(name="myColumn", type="string", length="50")
     */
    private $myColumn = 'myDefaultValue';
    ...
}

PHP级别的默认值是首选,因为这些值在新创建和保留的对象上也可以正常使用(在保留新对象以获取默认值后,Doctrine不会返回到数据库)。

<?php
/**
 * @Entity
 */
class myEntity {
    /**
     * @var string
     *
     * @ORMColumn(name="myColumn", type="integer", options={"default" : 0})
     */
    private $myColumn;
    ...
}

请注意,这使用SQL DEFAULT,这在某些字段(如BLOBTEXT)中不受支持。

未经作者同意,本文严禁转载,违者必究!