我正在玩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');
答案 0 :(得分:1)
我发现了我做错了什么。当我应该引用Doctrine_Record的实例时,我试图引用Doctrine_Table的实例。
方法名称Doctrine_Core::getTable()
具有误导性
这些让我对如何构建模型提出了更多疑问?