2012-06-14 16 views
5

Sto tentando di selezionare da una tabella in cui la durata selezionata divisa per la durata della voce equivale a nessun resto.Come aggiungere operatori in doctrine2 query builder dove istruzione

$qb = $em->createQueryBuilder() 
->from('AcmeBlogBundle:Entry', 'e') 
->andWhere(":duration % e.duration = 0") 
->setParameter('duration', $duration); 

Questo restituisce l'errore:

[Syntax Error] line 0, col 226: Error: Expected =, <, <=, <>, >, >=, !=, got '%' 

questo dovrebbe funzionare in SQL pianura. Qualcuno sa come farlo con il generatore di query di Doctrine?

+0

È la risposta corretta? – sensorario

risposta

9

Il simbolo % non è un operatore DQL. Prova questo:

$qb = $em->createQueryBuilder() 
->from('AcmeBlogBundle:Entry', 'e') 
->andWhere("mod(:duration,e.duration) = 0") 
->setParameter('duration', $duration); 

O leggere questo: http://docs.doctrine-project.org/projects/doctrine-orm/en/2.0.x/reference/dql-doctrine-query-language.html Il 12.5.1 paragrafo.

MOD(a, b) - Return a MOD b. 
+0

Grazie per il suggerimento ma mod non ha funzionato nella query. Sto guardando di nuovo la documentazione e non elenca il modulo e non indica nemmeno i calcoli all'interno delle istruzioni where. Dovrò continuare a cercare, ma buona idea. – Apot

+1

Sei un genio. MOS (a, b) ha funzionato come un fascino. Grazie mille! – Apot

+0

Puoi firmare questa risposta come corretta se lo è? – sensorario