php доктрина поведения помогает - PullRequest
0 голосов
/ 10 ноября 2009

Я прохожу учебники для доктрины и столкнулся с проблемой. Функция автозагрузки не применяется к поведению?

Этот - учебник, которому я следовал. Он должен автоматически создавать отношения между таблицами, упомянутыми при генерации, однако я просто получаю сообщение об ошибке, в котором говорится, что соответствующие столбцы сторонних идентификаторов не существуют в таблицах.

Это определенный бит кода, который должен быть запущен, но, похоже, не работает.

public function setTableDefinition()
{
    foreach ($this->_options['relations'] as $relation) {
        $columnName = Doctrine_Inflector::tableize($relation) . '_id';
        if (!$this->_table->hasColumn($columnName)) {
            $this->hasColumn($columnName, 'integer');
        }
    }
}

Если я вручную добавлю столбцы в свою схему yaml, поведение будет работать точно так, как ожидается.

Кто-нибудь может мне помочь?

Любой совет приветствуется, спасибо.

1 Ответ

1 голос
/ 19 ноября 2009

Я думаю, что в примере есть опечатка:

if (!$this->_table->hasColumn($columnName)) {
    $this->hasColumn($columnName, 'integer');
}

должно быть

if (!$this->_table->hasColumn($columnName)) {
    $this->setColumn($columnName, 'integer');
}
...