Lehre DQL-Datum als parameter problem
Hallo ich habe ein DQL, das funktioniert (ich bekomme alle meine event seit Anfang an) :
DoctrineHelper::getEntityManager()->createQueryBuilder()
->select("u.surname, count(u.surname) as total")
->from("User", "u")
->from("AbstractEvent", "e")
->from("Attendance", "a")
->where("u = a.attendee")
->andWhere("e = a.event")
->andWhere("a.status=1")
->andWhere("e.date<CURRENT_TIMESTAMP()")
->groupBy("u.email")
->orderBy("total","desc");
Aber das man nicht (ich möchte nur in diesem Monat event):
DoctrineHelper::getEntityManager()->createQueryBuilder()
->select("u.surname, count(u.surname) as total")
->from("User", "u")
->from("AbstractEvent", "e")
->from("Attendance", "a")
->where("u = a.attendee")
->andWhere("e = a.event")
->andWhere("a.status=1")
->andWhere("e.date<CURRENT_TIMESTAMP()")
->andWhere("e.date>?", date('Y-m-d 00:00:00', strtotime('-'.(date('j')-1).' day')) )
->groupBy("u.email")
->orderBy("total","desc");
Mein Fehler.log diese Zeile :
#0 /var/www/Doctrine/ORM/Query/AST/InputParameter.php(46): Doctrine\\ORM\\Query\\QueryException::invalidParameterFormat('?')
Ein print_r von dem Datum gibt mir : 2011-08-01 00:00:00 korrekt ist.
Hier ist das mapping für Datum:
/**
* Date of the event.
* @Column(type="datetime")
*/
private $date;
Jede Hilfe dankbar vielen Dank !
InformationsquelleAutor der Frage Michael Laffargue | 2011-08-12
Du musst angemeldet sein, um einen Kommentar abzugeben.
Verwenden Sie eine Abfrage, parameter und legen Sie dann die DateTime-Objekt als Wert des Parameters. Doktrin übernimmt dann die Konvertierung automatisch.
Hier ist der Beispiel code aus meinem eigenen Projekt
InformationsquelleAutor der Antwort Entea
Konnte, ' machen die Arbeit mit den parameter so, hier ist was ich kam zum Schluss :
InformationsquelleAutor der Antwort Michael Laffargue
Ich denke, es könnte daran liegen, dass Ihre
e.date
zugeordnet, wiedatetime
. Versuchen Weitergabe DateTime-Objekt, das anstelle von timestamp.Bitte, posten Sie Ihre entity mapping, dies würde zur Klärung der Quelle des Fehlers.
Update: seltsam... Vielleicht wird dies funktionieren:
InformationsquelleAutor der Antwort J0HN
Für mich gearbeitet, um alle Ergebnisse innerhalb der letzten 30 Minuten:
InformationsquelleAutor der Antwort Michael