2015-06-11 16 views
7

hatayı görüyor musunuz? benim şartlarım yok sayılıyor! Eğer adı aşağıdaki gibi bunlardan herhangi biri o zaman sorgu yazmalısınız olmaması gerektiğini istiyorsam durumda ..CakePHP WHERE NOT EQUAL

$transaction_query = $this->Transaction->find('all', 
       [ 
        'limit' => $countList, 
        'fields' => ['Transaction.client_id','Transaction.name','Transaction.created','Transaction.message_id','Transaction.credit'], 
        'conditions' => ['Transaction.id' => $client_id], 
        'AND' => ['Transaction.name !=' => 'Facturation'] 
       ]); 
+1

Karşılaştığınız kötü davranış hakkında ayrıntılı bilgi verebilir misiniz? –

cevap

10

Koşullarınızın ['Transaction.id' => $client_id, 'Transaction.name !=' => 'Facturation'] olması gerekiyor. conditions dizisinin çoklu koşulları 'VE' koşulları olarak yorumlanır. ; Yinelenen koşul dizi anahtarlarını varsa sadece and tarafından dizine ihtiyaç

$transaction_query = $this->Transaction->find('all', 
    [ 
     'limit' => $countList, 
     'fields' => [ 
      'Transaction.client_id', 
      'Transaction.name', 
      'Transaction.created', 
      'Transaction.message_id', 
      'Transaction.credit' 
     ], 
     'conditions' => [ 
      'Transaction.id' => $client_id, 
      'Transaction.name !=' => 'Facturation' 
     ] 
    ] 
); 

-: gibi

Yani sorgu olmazdı örneğinizde bu durum Transaction.id ve Transaction.name != olduğu için geçerli değildir. Yine de, and endeksi, bir kardeş değil, conditions dizininin içinde bir dizin olmalıdır.

3
$this->Transaction->find('all', array(
'limit' => $countList, 
'fields' => ['Transaction.client_id','Transaction.name','Transaction.created','Transaction.message_id','Transaction.credit'], 
'conditions' => array("not" => array ('Transaction.id' => $client_id)), 
'AND' => array('not' => ('Transaction.name ' => 'Facturation'))); 

bu diziler ile çok sinirli alıyorum:

$this->Transaction->find('all', array('conditions' => array('NOT' => array('Transaction.name' => array('a','aa','aaa')))));