Как я устанавливаю значение по умолчанию в Доктрине 2?
Значения базы данных по умолчанию не поддерживаются "переносимо". Единственный способ использовать значения по умолчанию для базы данных - использовать атрибут сопоставления columnDefinition
, где вы указываете фрагмент SQL
( DEFAULT
, включая причину) для столбца, в котором отображается поле к.
Вы можете использовать:
<?php
/**
* @Entity
*/
class myEntity {
/**
* @var string
*
* @Column(name="myColumn", type="string", length="50")
*/
private $myColumn = 'myDefaultValue';
...
}
Значения по умолчанию уровня PHP предпочтительны, поскольку они также правильно доступны для вновь созданных и сохраняемых объектов (Doctrine не будет возвращаться в базу данных после сохранения нового объекта для получения значений по умолчанию).
Я использовал обходной путь LifeCycleCallback
. Все еще ждем, есть ли еще «собственный» метод, например @Column (type = «string», default = «hello default value»)
.
/**
* @Entity @Table(name="posts") @HasLifeCycleCallbacks
*/
class Post implements Node, \Zend_Acl_Resource_Interface {
...
/**
* @PrePersist
*/
function onPrePersist() {
// set default date
$this->dtPosted = date('Y-m-d H:m:s');
}