我想扩展Zend_Db_Table_Row_Abstract以除了表中的那些之外还有一些额外的字段。
实施例。
我有
class Automobili_Model_Car extends Zend_Db_Table_Abstract {
protected $_name = 'car';
protected $_rowClass = 'Automobili_Model_Row_Car';
}
和
class Automobili_Model_Row_Car extends Zend_Db_Table_Row_Abstract {
}
Car table有model_id,它指的是模型表(corsa,clio ...),我想让Automobili_Model_Row_Car从依赖表模型加载模型,而不仅仅是car table中的model_id。
什么是正确的做法?
此致 Sasa Stamenkovic。
答案 0 :(得分:1)
您有几个选择:
您拥有之前提到的findDependentRowset()和findParentRow()方法。对于那些我会说阅读文档的人:http://framework.zend.com/manual/en/zend.db.table.relationships.html。我从来没有真正掌握这种方法,所以我不会说太多。
另一个选项是Zend_Db_Table_Row_Abstract有一个你可以覆盖的init()函数。您可以从那里加载另一行,每次创建Car对象时,它都会加载模型。这对于您对数据库进行另一次查询的每个对象来说都是昂贵的。如果在一个查询中加载50行,则在创建Car对象时将执行50个以上的查询。
另一种选择是将getModel()函数添加到Car类。此函数将在请求时延迟加载Model类。
希望这有帮助。
答案 1 :(得分:0)
您是否可以发布有关您希望它如何正常工作的更多详细信息...我的意思是您始终可以分别使用findDependentRowset
和findParentRow
来获取相关或父行集。