djmccormick Posted May 1, 2010 Share Posted May 1, 2010 Hello Everyone, I have a question about Doctrine (I'm using 1.2.2) and the way to query for data. Here is my code: Bootstrap: http://pastie.org/941280 Model: http://pastie.org/941275 Controller: http://pastie.org/941278 Controller debugging output: http://pastie.org/941290 Notice the controller and controller debugging output. I'm selecting only the username in the controller. The query it is generating according to echo $query->getSqlQuery() looks like this: SELECT u.id AS u__id, u.username AS u__username FROM user u Yet the array returned by $users->toArray() has every field populated: Array ( [0] => Array ( [id] => 1 [username] => bbarker [password] => $1$LF7Rkevp$mROyY2ijf6g94R1VyuL0Q0 [first_name] => Bob [last_name] => Barker [email_address] => foo@bar.com [created_at] => [updated_at] => ) ) I don't understand why it is returning all data and not simply the field I requested. In the Doctrine 1.2 documentation they show a similar example (it's the first example under this heading) and it's not getting every field. There is a slot for every field but those that weren't requested are blank. Thank you in advance for any advice and tips from everyone. Regards, Dustin Quote Link to comment https://forums.phpfreaks.com/topic/200352-doctrine-122-query-problem/ Share on other sites More sharing options...
Zyx Posted May 6, 2010 Share Posted May 6, 2010 Doctrine remembers row objects it has previously downloaded and if it notices that you are trying to select them again, it simply returns the existing ones. Perhaps this is what happens here. BTW. If you do not use row objects, hydrate the collection immediately to the array instead of calling toArray() later: $users = $query->execute(array(), Doctrine_Core::HYDRATE_ARRAY); Quote Link to comment https://forums.phpfreaks.com/topic/200352-doctrine-122-query-problem/#findComment-1054002 Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.