将Doctrine ORM与Zend Framework一起使用时出现致命错误

时间:2010-10-19 08:21:39

标签: php zend-framework orm doctrine

我正在玩ORM,但我正在努力摆脱起跑线。我熟悉Zend_Db并希望Doctrine以类似的方式工作,但更灵活。

我已经按照各种教程,将Doctrine与Zend Framework集成在一起。所有这些教程或多或少都说同样的事情。

我已经制作了一些基本的Doctrine_Record类,据我所知,你可以像使用Zend_Db_Table_Abstract一样使用Doctrine_Table。

我还没想到如何将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

我不知道它是否与自动加载器有任何关系,但由于表模型属于模块资源的范围,我认为这不会是一个问题。

我应该在我的bootstrap中添加一个连接,它只是为了这个测试而劫持了Zend_Db的PDO。

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

1 个答案:

答案 0 :(得分:1)

我发现了我做错了什么。当我应该引用Doctrine_Record的实例时,我试图引用Doctrine_Table的实例。

方法名称Doctrine_Core::getTable()具有误导性

这些让我对如何构建模型提出了更多疑问?