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.
Version imprimable
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:
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:
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:
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.