所以,我知道一个Doctrine“find()”(Doctrine 2)调用的结果导致了一个基于Doctrine的类,但我试图通过SOAP连接输出相关的数据(不要请问)并且不希望所有的Doctrine元数据也通过。
例如,我的查找结果('Account',1)为我提供了一个类,其中包含firstName,lastName和emailAddress的属性。该类的属性也与硬件模型有关,我可以在那里使用相关的结果。但是我想要归还的是:
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"
)
似乎应该有一种自动方式来执行此类操作,因此我不必编写自定义过滤方法/类来删除我需要的数据。 Doctrine的任何提示都在那里开发?
答案 0 :(得分:1)
我认为这可能是您正在寻找的东西:
$em->getRepository('namespace\entity')->createQueryBuilder('a')->where('criteria = 1')->getQuery()->getArrayResult();
但你需要修改where。
答案 1 :(得分:1)
尝试打开相关对象:
$account->setHardware($account->getHardware()->toArray());
但是忘记标准类的东西,获得它的唯一方法是将对象转换为数组,然后将它们转换为对象。无论如何,如果它是一个SOAP连接,我想你应该使用数组而不是对象。