当涉及到提高性能时,减少单个SQL查询的数量是其中的一部分。
现在让我们假设一个非常基本的例子:我有一个博客表和一个用户表。每个博客都通过给定的主键引用用户。
一个声明可以像
SELECT blog.title, blog.text, user.name FROM blog, user INNER JOIN on blog.user_id = user.id
现在我的博客对象我想要一个$user属性,它是一个用户对象
我的问题:ZF2 中是否有内置功能来处理这种情况?还是需要我手动将结果的每个字段映射到我的对象中?
提前致谢
不,ZF2 没有内置功能可以做到这一点 - 如果你想要的话,你应该考虑 Doctrine 2 或 Propel。
但是,使用 ZendDb
,您可以在映射器类中编写此类 SQL 语句,然后使用 ArraySerializable
水化器填充博客实体。然后,博客实体的populate()
可以选择使用传递给它的用户数据创建用户对象。