2014-11-06 3 views
2

Я хочу получить результат запроса doctrin2 в формате объекта, но он дает мне формат массива. Я пробовал, но я не могу добиться успеха.Запрос Doctrine2 с QueryBuilder возвращает массив вместо объекта

Это демонстрационный запрос, но если я хочу применять аналогичные типы соединения в другом запросе, а также требует результатов в формате объекта, но во всех них.

У вас есть решение?

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, Но можете ли вы привести пример, я пытаюсь найти из Google, но не могу понять. –

+0

'-> select (['partial u. {Id, ...}'])' - что-то вроде этого .. Я никогда не пробовал, так как это не рекомендуется ORM .. Вам лучше загрузить его как полный объект .. – xurshid29

+0

Спасибо, я сделал это. Xurshid29 Можете ли вы помочь мне в моей другой проблеме, которая немного сложнее в отношении поставщика собственной аутентификации. –

Смежные вопросы