如何解决为什么在使用findDependantRowset和Zend Framework时出现这个奇怪的错误?
| PHP抛出此错误:Fatal error: Call to a member function getAdapter() on a non-object in C:\\Program Files\\Zend\\ZendServer\\share\\ZendFramework\\library\\Zend\\Db\\Table\\Row\\Abstract.php on line 869
...当我调用此代码时:
$item = $itemMapper->find(1); // Find item with id of 1
$item->findDependentRowset(\"Application_Model_DbTable_SubItem\");
我还有以下其他课程:
models/DBTable/Item.php
:
class Application_Model_DbTable_Item extends Zend_Db_Table_Abstract {
/** Table name */
protected $_name = \'items\';
}
models/DBTable/SubItem.php
:
class Application_Model_DbTable_SubItem extends Zend_Db_Table_Abstract {
/** Table name */
protected $_name = \'subitems\';
protected $_referenceMap = array(
\'Item\' => array(
\'columns\' => \'items_id\',\'refTableClass\' => \'Application_Model_DbTable_Item\',\'refColumns\' => \'items_id\'
)
);
}
据我所知,我所有的模型,映射器和数据库表都已正确设置。通过包装器和fetchAll
访问模型可以正常工作。
我的模型扩展了Zend_Db_Table_Row
。为什么给我这个错误?
仅供参考:
错误消息引用的行如下所示:
public function findDependentRowset($dependentTable,$ruleKey = null,Zend_Db_Table_Select $select = null){
$db = $this->_getTable()->getAdapter(); // <<<< there it is
...
解决方法
我想到了。显然,我是假设我的映射器类返回的
find()
的结果是一个Zend_Db_Table_Row
对象。我什至尝试使用instanceOf
进行验证,但我要么使用不正确,要么对我撒谎。
我的映射器返回的对象只是一个模型。
在Application_Model_DbTable_Table
对象上调用find()
将返回一个行集,and14ѭ当前有效。使用这种方法后,我成功拨打了findDependentRowset()
。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。