Jump to content

Doctrine 1.2.2 Query Problem


djmccormick

Recommended Posts

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] => [email protected]
            [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

Link to comment
https://forums.phpfreaks.com/topic/200352-doctrine-122-query-problem/
Share on other sites

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);

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.