php - How to ORDER BY DateTime in Doctrine 2? -


i'm looking execute following query:

        $qb = $this->getentitymanager()->createquerybuilder();          $qb->select( 'e' )             ->from( 'entity\event',  'e' )             ->setmaxresults( $limit )             ->setfirstresult( $offset )             ->orderby('e.datestart', 'asc');          $events = $qb->getquery()->getresult(); 

where

/**  * user  *  * @orm\table(name="event")  * @orm\entity(repositoryclass="repositories\eventrepository")  */ class event {     /**      * @var \datetime      *      * @orm\column(name="date_start", type="datetime", precision=0, scale=0, nullable=true, unique=false)      */     private $datestart;  ... } 

but order doesn't work. results not displayed date start.

i'm looking retrieve 20 first events happening soonest latest

how can ?

thanks

edit:

following previous answer, i'm updating query. unfortunatey still can't have working. please help

     $qb->select( 'e' )         ->from( 'entity\event',  'e' )         ->where(              $qb->expr()->andx(                 $qb->expr()->between('e.datestart', ':from', ':to')             )         )         ->orderby('e.datestart', 'asc')         ->setfirstresult( $offset )         ->setmaxresults( $limit ); 

thanks

edit 2: seems moving orderby did make difference. don't have error of right now. script running fine orderby not ordered datetime @ !

in results can't see make me think has been ordered based on given property, definitively not datetime !

how possible ?

the datetime field looks in db: 2014-05-24 19:30:00

when var dump queries comes out of previous query, here have datetie field:

 ["datestart"]=> string(8) "datetime" 

does mean it's string doctrine , that's why not sorted datetime ?

thanks

database

you should check table structure in database:

what type of column date_start?
should datetime (in mysql, other vendors may vary).
suspect form of string, varchar (or char, text, etc).

when case, result is ordered, not in way expect it. because different types ordered differently database.

cli tool

doctrine comes console tool that's able validate mappings , check if database consistent them: doctrine orm:validate-schema.

if reports inconsistencies database, use doctrine orm:schema-tool:update --dump-sql have display queries perform update database (it assume mappings source of truth).


Comments

Popular posts from this blog

apache - Remove .php and add trailing slash in url using htaccess not loading css -

javascript - jQuery show full size image on click -