【发布时间】:2011-10-11 14:11:45
【问题描述】:
我需要在 Zend_Db_Table 之上使用连接来实现一些东西。 It has come to my attention that Zend_Db_Table provides no easy method of doing joins by itself。因此,我决定简单地编写查询,然后使用Zend_Db_Adapter::fetchAll 获取结果。
但是,我仍然需要以Zend_Db_Table_Rowset 的形式获取结果,以便其他需要行集的代码仍然可以正常运行。因此,我需要将我从Zend_Db_Adapter 获得的数组手动转换为Zend_Db_Table_Rowset。
我该怎么做?
【问题讨论】:
-
How to use Join in Zend Framework 的可能重复项,尽管这不允许您再使用
Zend_Db_Rowset。如果这不能回答您的问题,请考虑使用 ORM(如 Doctrine,Zend_Db_* 根本不擅长) -
@Gordon:这与
Zend_Db_Table_Select抛出的错误无关。我的查询工作得很好,但我只有一个数组的结果。不过,我需要将其公开为行集。 -
我主要链接它是为了向您展示使用 Zend_Db_Table 进行连接的简单方法。但是,是的,正如该问题中公认的答案所说:“因为 Zend_Db_Table 提供行网关功能,如果您加入其他表,这些功能将不起作用,......” - 因此我建议使用 Doctrine (ORM) 而不是 TableDataGateway 和RowDataGateway 模式。如果您进行连接,则结果不再是一行。
-
@Gordon:这与我的问题完全无关。我不能依靠像 Doctrine 这样的东西来进行一两个查询——那太疯狂了。我的问题是“我的查询工作,我如何将其公开为行集”。您的链接问题是“我一开始就无法编写查询”
-
查看我的同名回答。总结的很好。如果这不是您要问的,请更新问题,因为显然已经有两个人没有得到您要问的内容。
标签: php zend-framework zend-db