2

我想扩展 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 { 
} 

汽车表有model_id,它指的是模型表(corsa,clio ...),我希望Automobili_Model_Row_Car从依赖表模型加载模型,而不仅仅是从汽车表中加载model_id。

什么是正确的做法?

问候,萨萨·斯塔门科维奇。

4

2 回答 2

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 类。此函数将在请求时延迟加载模型类。

希望这可以帮助。

于 2010-02-18T08:04:06.147 回答
0

您能否发布有关您希望它如何准确工作的更多详细信息...我的意思是您始终可以使用findDependentRowsetfindParentRow分别获取依赖行集或父行集。

于 2010-02-18T07:38:55.227 回答