Doctrine orm “返回一条原则”;查找();作为一个类的结果
因此,我知道一个条令“find()”(条令2)调用的结果会产生一个基于条令的类,但我试图通过SOAP连接(不要问)只输出相关数据,并且不希望所有的条令元数据也通过 例如,我的查找结果('Account',1)返回给我一个类,其中包含firstName、lastName和emailAddress的属性。类上的一个属性也与硬件模型相关,并允许我在那里访问相关的结果。不过,我想要的回报是:Doctrine orm “返回一条原则”;查找();作为一个类的结果,doctrine-orm,Doctrine Orm,因此,我知道一个条令“find()”(条令2)调用的结果会产生一个基于条令的类,但我试图通过SOAP连接(不要问)只输出相关数据,并且不希望所有的条令元数据也通过 例如,我的查找结果('Account',1)返回给我一个类,其中包含firstName、lastName和emailAddress的属性。类上的一个属性也与硬件模型相关,并允许我在那里访问相关的结果。不过,我想要的回报是: object(stdClass)#15 (5) { ["companyName"]=> strin
object(stdClass)#15 (5) {
["companyName"]=>
string(12) "test company"
["firstName"]=>
string(5) "chris"
["id"]=>
int(1)
["lastName"]=>
string(7) "smith"
["hardware"]=> array(
[0] => object(stdClass)#15 (5) {
["hostname"]=>
string(12) "host1",
[1] => object(stdClass)#16 (5) {
["hostname"]=>
string(12) "host2",
[2] => object(stdClass)#17 (5) {
["hostname"]=>
string(12) "host3"
)
似乎应该有一种自动的方法来做这类事情,这样我就不必编写一个定制的过滤方法/类来去除我需要的数据。那里的条令开发者有什么建议吗?我想这可能是你想要的:
$em->getRepository('namespace\entity')->createQueryBuilder('a')->where('criteria = 1')->getQuery()->getArrayResult();
但是您需要修改位置。尝试展开相关对象:
$account->setHardware($account->getHardware()->toArray());
但是忘记标准类的事情吧,获得它的唯一方法是将对象转换为数组,然后将它们转换为对象。无论如何,如果它是SOAP连接,我想你应该使用数组而不是对象。Hmm,这看起来确实需要做很多工作——而且我不想把它作为数组。Hmm,我终于重新尝试了……似乎对我不起作用:
code
hw=$em->getRepository('Account')->createQueryBuilder('a')->where('id=1')->getQuery()->getArrayResult()code
所以你不想让Doctrine返回代理实例?嗯,我还是Doctrine的新手,所以我不能100%确定这个问题的答案,但我要说“正确”。