Значение по умолчанию в Доктрине

Как я устанавливаю значение по умолчанию в Доктрине 2?

319
задан Nathaniel Ford 8 January 2016 в 12:42
поделиться

2 ответа

Значения базы данных по умолчанию не поддерживаются "переносимо". Единственный способ использовать значения по умолчанию для базы данных - использовать атрибут сопоставления columnDefinition , где вы указываете фрагмент SQL ( DEFAULT , включая причину) для столбца, в котором отображается поле к.

Вы можете использовать:

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

Значения по умолчанию уровня PHP предпочтительны, поскольку они также правильно доступны для вновь созданных и сохраняемых объектов (Doctrine не будет возвращаться в базу данных после сохранения нового объекта для получения значений по умолчанию).

373
ответ дан 23 November 2019 в 01:00
поделиться

Я использовал обходной путь 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');
}
16
ответ дан 23 November 2019 в 01:00
поделиться
Другие вопросы по тегам:

Похожие вопросы: