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
Post a Comment