Php 分页findManyToManyRowset结果

Php 分页findManyToManyRowset结果,php,zend-framework,Php,Zend Framework,我有两个数据库表,让我们用多对多桥接表AB将它们称为A和B。我已经为所有三个表编写了Zend_Db_表模型 我有一个A_行对象,我使用Zend_Db_行::find方法从数据库中提取。现在我需要打印一个包含所有行的表,这些行与此行相关。问题是我需要对该表进行分页,但该表是使用B_行集的方法呈现的 如果我想使用Zend_Paginator,我可以看到两个选项 1使用Zend_Paginator_Adapter_迭代器对findManyToManyRowset返回的行集进行分页。这看起来像这样: $

我有两个数据库表,让我们用多对多桥接表AB将它们称为A和B。我已经为所有三个表编写了Zend_Db_表模型

我有一个A_行对象,我使用Zend_Db_行::find方法从数据库中提取。现在我需要打印一个包含所有行的表,这些行与此行相关。问题是我需要对该表进行分页,但该表是使用B_行集的方法呈现的

如果我想使用Zend_Paginator,我可以看到两个选项

1使用Zend_Paginator_Adapter_迭代器对findManyToManyRowset返回的行集进行分页。这看起来像这样:

$b_rowset = $a_row->findManyToManyRowset('B_Table', 'AB_Table');
$paginator = new Zend_Paginator(new Zend_Paginator_Adapter_Iterator($b_rowset));
然而,有两个问题:

整个结果集不仅获取页面上的项目

b我使用b_行集的方法来呈现表格HTML,因此我必须将结果转换回结果集

这个解决方案似乎有点太难看了

2构建Zend_Db_Table_手动选择并使用Zend_Paginator_Adapter_dbtable选择

但是使用Zend_Db_table_Select构建多表查询非常不方便,需要将结果转换为B_行集。我可能最终会得到50行左右的混乱代码


我可以使用任何一种方法,而且我可能会比写这篇文章更快,但我想看看一些意见,如何很好地解决这个问题,因为我希望一次又一次地遇到这种情况。

我已经尝试了这两种方法,或者至少有两种,我确实有一种类似于使用findDependentRowset的方法

一个。效果很好。设置和运行起来比较困难,但这意味着查询是为我构建的,在实现时麻烦更少

两个。然而,我最终还是使用了这种方法。它允许更大的灵活性,并允许您仅在需要联接表时联接表。这也适用于Zend分页。我的解决方案是在我的模型中编写函数,我可以将Zend_Db_Select对象传递给它,然后模型中的函数会将连接应用到Zend_Db_Select对象,类似于此

 // In Model A, you would create a function to join table B
 // this is much simpler, but hopefully you get the idea
 function joinB(Zend_Db_Select &$select)
 {
      $select->join(...);
      return $this;
 }
这当然不是每个人的解决方案,但它为我提供了我所需要的

我之前写过'one'和'two',因为正确的列表语法似乎把代码高亮显示搞砸了