CakePHP 找到 WHERE NOT EQUAL

CakePHP find WHERE NOT EQUAL

你们能看到错误吗?我的 AND 条件被忽略了!我对这些数组感到非常沮丧..

 $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']
                ]);
 $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')));

如果您希望该名称不应该是其中任何一个,那么您应该按如下方式编写查询:

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

您的条件需要['Transaction.id' => $client_id, 'Transaction.name !=' => 'Facturation']conditions数组的多个条件被解释为'AND'个条件。

因此您的查询将如下所示:-

$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'
        ]
    ]
);

如果你有重复的条件数组键,你只需要按and索引;在您的示例中情况并非如此,因为您有 Transaction.idTransaction.name !=。无论如何,and 索引需要是 conditions 数组内的索引,而不是兄弟。