2014-11-06 79 views
2

我想以对象格式获取doctrin2查询结果,但它以数组格式提供给我。 我试过但我不能成功。使用QueryBuilder的Doctrine2查询返回数组而不是对象

这是演示查询,但是如果我想在另一个查询中应用相似类型的连接,还需要对象格式的结果,但在所有这些结果中。

你有什么解决方案吗?

return $this->createQueryBuilder("u") 
->select("u.id as userid, up.id as profileid, u.username, u.email, u.isactive, up.firstname, up.lastname, up.profileimage, up.address, up.zipcode, up.biography") 
->innerjoin("u.userprofile", "up") 
->where("u.id = :userid") 
->setParameter(":userid", $userid) 
->getQuery() 
->getResult(); 

的ResultSet:

Array 
(
    [userid] => 4 
    [profileid] => 3 
    [username] => Test user 
    [email] => [email protected] 
    [isactive] => 1 
    [firstname] => MyFname 
    [lastname] => MyLname 
    [profileimage] => 5111ea998c9476c2231180050d5ad64dc3298fe0.jpeg 
    [address] => My Address 
    [zipcode] => 36102555 
    [biography] => This is my first symfon2.3 project. 
) 

回答

3

可能是因为你不是完全加载的对象,因为你部分加载它。这就是ORM自动转换它的原因。您可以使用partial关键字to force它作为部分对象加载,但要小心。

+0

谢谢Xurshid,但你能给我例子,我尝试从谷歌发现,但无法理解。 – 2014-11-06 06:38:42

+0

' - > select(['partial u。{id,...}'])' - 像这样的东西..我从来没有尝试过,因为它不被ORM推荐。您应该更好地加载它对象.. – xurshid29 2014-11-06 06:42:06

+0

谢谢,我已经做到了。 Xurshid29你能帮我解决另一个关于定制认证提供者更复杂的问题。 – 2014-11-06 06:51:34

相关问题