доктрина значения по умолчанию и отношения - PullRequest
1 голос
/ 30 мая 2010

В MySQL я могу установить значение по умолчанию для столбца следующим образом:

ALTER TABLE <Table> CHANGE <Column> DEFAULT <NEW_DEFAULT_VALUE>

Я могу получить значение по умолчанию:

SELECT DEFAULT(<Column>) FROM <Table> LIMIT 1

Возможно ли реализовать эту концепцию с помощью Доктрины?

Что мне действительно нужно, так это методы в моем классе таблицы:

class UserTable extend Doctrine_Table {
    /* ... */

    /** 
     * @return Doctrine_Record
     */
    public function getDefaultProperty() {
        return ???;
    }
    public function setDefaultProperty($value) {
        /* $value can be either integer or Doctrine_Record */
    }
}

Ответы [ 2 ]

0 голосов
/ 27 января 2011

Посмотрим, сможем ли мы это выяснить.

Строка 567 из Record.php, часть метода assignDefaultValues(), который заполняет значения по умолчанию при создании объекта, говорит:

$default = $this->_table->getDefaultValueOf($column);

Так что вам на самом деле не нужно добавлять getDefaultProperty(), вы можете использовать:

$userTable = Doctrine::getTable('User');
$defaultName = $userTable->getDefaultValueOf('name');

Однако, похоже, вы хотите, чтобы getDefaultProperty() вернул Doctrine_Record. Если вы просто хотите вернуть весь объект, для которого установлены все значения по умолчанию, я уверен, что вы можете просто использовать:

$defaultUser = new User(); (См. Руководство доктрины для значений по умолчанию )

Но убедитесь, что ваши значения по умолчанию определены в schema.yml, а не только в базе данных. Doctrine не будет считывать значения по умолчанию из базы данных и полагается на схему, сообщающую ей, что делать.

Дайте мне знать, как это работает.

Ура, ~ J * * тысяча двадцать-семь

0 голосов
/ 27 января 2011

Класс Doctrine_Table содержит метод getDefaultValueOf, который делает то, что вы ищете. Итак, если у вас есть запись доктрины, вы можете написать что-то вроде: $ record-> getTable () -> getDefaultValueOf ('address_line_1'); где address_line_1 является столбцом. Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...