如何在表便捷方法中指定 HYDRATE_ARRAY?
使用 Doctrine 2,当我使用便捷方法 EntityRepository::find
或 EntityRepository::findOneById
时,有什么方法可以指定 HYDRATE_ARRAY
吗?我是否必须编写自己的 DQL 查询并使用它?
With Doctrine 2, is there any way to specify HYDRATE_ARRAY
when I use the convenience methods EntityRepository::find
or EntityRepository::findOneById
? Do I have to write my own DQL query, and use that instead?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我不确定,但我认为你不能。
您必须编写自己的 DQL,或者获取一个对象,然后将其序列化为数组。
第二种方法可能较慢,但对于测试环境来说很方便。我使用了此处找到的beberleis序列化类。
它工作正常,除了你不能序列化对象中的一对多和多对多关系,换句话说,任何应该序列化为集合的东西的物体。
顺便提一句。如果您没有php5.4,只需将
trait
替换为抽象类
,并让所有模型对象继承自该类I'm not sure, but I think you can't.
You will have to write your own DQL, or fetch an object and later serialize it to an array.
Second approach is probably slower, but it comes handy for testing environment. I have used beberleis serialization class found here.
It works ok, except you can't serialize one-to-many and many-to-many relations in an object, in other words anything that should serialize as an collection of objects.
Btw. if you don't have php5.4, just replace the
trait
with anabstract class
, and have all your model object inherit from that class