我想知道我是否可以使用Zend框架有效地检索其他相关行而无需使用大量自定义代码。我将使用Bugs数据库的Zend示例转换为我的问题:
$accountsTable = new Accounts();
$accountsRowset = $accountsTable->find(1234);
$user1234 = $accountsRowset->current();
$bugsReportedByUser = $user1234->findDependentRowset('Bugs');
但是,在我的情况下,Bugs表会有额外的依赖项,在本例中可能是BugReproduction。如何检索这些复制品(具有多对一错误)。 对 $ bugsReportedByUser foreach 进行编码似乎非常糟糕,并获取其他dependentRowsets以获取Reproductions。这将导致'n'顺序查询,而每个请求总是需要固定数量的查询。
这对于Joins来说似乎微不足道,但我在Zend生态圈中找不到合理的方法。
答案 0 :(得分:1)
嗯,我认为很长很难,但它归结为rowset-method-> getDependentRowset的基本缺失。 (不要误认为是一行(单数) - > getDepedentRowset())
因此扩展Zend_Db_Table_Row_Abtract,并在示例的Bugs Table类中使用它:
class BugsTable extends Zend_Db_Table_Abstract
{
protected $_name = 'bugs';
protected $_rowsetClass = 'MyRowset';
...
并且在MyRowSet中实现了findDependentRowset($ dependentTable)。高级实现将是:
$ids
(数组)。bugsTable->find($ids)
(可以使用Zend_Db_Table_Relationship找到关系)