学说中的默认值

2022-08-30 05:56:32

如何在学说 2 中设置默认值?


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

请注意,这使用 SQL ,某些字段(如 和 )不支持 SQL。DEFAULTBLOBTEXT


答案 2

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

您可以使用:

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

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


推荐