52 votes

CakePHP: Trouver où le champ n'est pas nul

Je dois sélectionner toutes les lignes où User.site_url n'est pas null. C'est assez simple de faire cela dans une requête MySQL classique, mais comment cela se fait-il dans CakePHP?

Le manuel mentionne ce qui suit:

 array ("not" => array (
        "Post.title" => null
    )
)
 

J'ai essayé ce qui suit mais ça retourne toujours tout

 $this->User->find('all', array('conditions' => array('not' => array('User.site_url'))));
 

102voto

g33kz0r Points 3047

Je pense que c'est ce que vous voulez dire:

 $this->User->find( 'all', array( 
    'conditions' => array("not" => array ( "User.site_url" => null)
))
 

17voto

PetersenDidIt Points 17498

Votre manque juste le nul

 $this->User->find('all', array('conditions' => array('not' => array('User.site_url'=>null))));
 

16voto

GwynBleidd Points 59

Dans Cake, une condition WHERE est construite à partir de l'élément 'conditions' en joignant des clés et des valeurs. Cela signifie que vous pouvez réellement éviter de fournir les clés si vous le souhaitez. Par exemple:

 array('conditions' => array('User.id'=>1))
 

est complètement équivalent à

 array('conditions' => array('User.id = 1'))
 

Essentiellement, vous pouvez résoudre votre problème simplement en ces termes:

 $this->User->find('all', array('conditions' => array('User.site_url IS NOT NULL')));
 

4voto

Souvick Dey Points 237

Vous pouvez aussi essayer ça,

 $this->User->find('all', array('conditions' => array('User.site_url <>' => null));
 

Cela fonctionne bien pour moi ..

1voto

chanraksmey Points 61

Cela fonctionne bien pour moi:

 $this->User->find('all', array('conditions' => array('User.site_url !=' => null));
 

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X