Bonsoir, je voudrais imbriquer des conditions avec doctrine du style
WHERE ... AND (... OR ...)
Cela est-il possible . Car quand je fais des OR, il me les mets à la suite ce qui n'a plus de sens.
Merci d'avance.
Cordialement.
Bonsoir, je voudrais imbriquer des conditions avec doctrine du style
WHERE ... AND (... OR ...)
Cela est-il possible . Car quand je fais des OR, il me les mets à la suite ce qui n'a plus de sens.
Merci d'avance.
Cordialement.
Oui et non...
C'est vrai qu'à ce niveau, il est dommage de ne trouver les notions que l'on avait dans propel
Reste qu'il y a une solution.
Tu peux faire unQui donnera un truc du genre :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 $q = Doctrine_Query::create()-> from('user u')-> where( 'u.name = :nom AND (u.date > :date OR u.active = :active )', array('nom' => 'Durant', 'date' => '2010-31-12' , 'active' => true ) )
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 select * from user as u where u.name = 'Durant' and (date > '2010-31-12' or u.active = true )
Effectivement ça marche merci beaucoup !
Cependant, je n'ai par réussi à faire fonctionner les alias :nom. J'ai du mettre plusieurs "?". Est-il possible d'utiliser plusieurs fois le même alias dans la même requête ?
Merci d'avance.
C'est le principe des alias.
Par contre, je me rend compte que j'ai fais une erreur en écrivant à la volée le code.
Il faut écrire :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 $q = Doctrine_Query::create()-> from('user u')-> where( 'u.name = :nom AND (u.date > :date OR u.active = :active )', array(':nom' => 'Durant', ':date' => '2010-31-12' , ':active' => true ) )
Effectivement ça marche parfaitement.
Merci beaucoup une fois de plus.
Cordialement.
Partager