Неустранимая ошибка при использовании Doctrine ORM с Zend Framework - PullRequest
0 голосов
/ 19 октября 2010

У меня есть небольшая игра с ORM, но я изо всех сил пытаюсь выйти из стартовых блоков.Я знаком с Zend_Db и надеялся, что Doctrine будет работать аналогичным образом, но с большей гибкостью.

Я следовал различным учебным пособиям, чтобы интегрировать Doctrine с Zend Framework, которые доступны.Все эти уроки более или менее говорят одно и то же.

Я создал несколько базовых классов Doctrine_Record, и, насколько я могу судить, вы используете Doctrine_Table так же, как вы бы использовали Zend_Db_Table_Abstract.

IЯ еще не понял, как можно связать объект Record с объектом Table, но это другая история.

Проблема, с которой я сталкиваюсь, - это когда я пытаюсь получить экземпляр таблицы, используя ...

    $role = Doctrine_Core::getTable('Admin_Model_RoleTable');

Я получаю серию фатальных ошибок ...

    Catchable fatal error: Argument 2 passed to Doctrine_Table::__construct() 
    must be an instance of Doctrine_Connection, none given

    Catchable fatal error: Argument 1 passed to Doctrine_Configurable::setParent()
    must be an instance of Doctrine_Configurable, null given

    Call to a member function addTable() on a non-object

Я не знаю, имеет ли это какое-либо отношение к автозагрузчикам, но поскольку модели таблиц входят в сферу примененияРесурсы модуля Я не думаю, что это будет проблемой.

Я должен добавить, что в моем загрузчике я добавил соединение, которое захватывает PDO Zend_Db только для этого теста.

    $manager = Doctrine_Manager::getInstance();
    $manager->connection($this->getResource('db')
            ->getConnection(), 'db'); 

1 Ответ

1 голос
/ 19 октября 2010

Я обнаружил, что я делал неправильно. Я пытался ссылаться на экземпляр Doctrine_Table, когда я должен был ссылаться на экземпляр Doctrine_Record.

Имя метода Doctrine_Core::getTable() вводило в заблуждение

Это оставляет мне больше вопросов о том, как структурировать модели?

...