CakePHP Supprimer avec Plusieurs Conditions

Cela me rend fou. Pourquoi ne Gâteau besoin de faire des choses trop complexes..

Je suis l'espoir d'obtenir Gâteau pour générer du SQL qui ressemble à ceci..

J'attends le SQL qui fonctionne à

DELETE `ProductVouchers` 
FROM `product_vouchers` AS `ProductVouchers`   
WHERE `ProductVouchers`.`id` = 16 
AND `ProductVouchers`.`client_id` IS NULL; 

Je suis en utilisant delete() comme ce

$this->ProductVouchers->delete([
    'ProductVouchers.id'=>$id,
    'ProductVouchers.client_id'=>"NULL"
]);

Le journal montre

DELETE `ProductVouchers` 
FROM `product_vouchers` AS `ProductVouchers`   
WHERE `ProductVouchers`.`id` IN (16, 'NULL')

Essayer

$this->ProductVouchers->delete([
   'ProductVouchers.id'=>$id,
   'ProductVouchers.client_id'=>NULL
]);

Journal montre

DELETE `ProductVouchers` 
FROM `product_vouchers` AS `ProductVouchers`   
WHERE `ProductVouchers`.`id` IN (16, NULL) 

Essayer:

 $this->ProductVouchers->delete([
    'ProductVouchers.id'=>$id,
    'ProductVouchers.client_id IS NULL'
 ]);

Journal montre rien de ce qui est encore plus mauvais!

EDIT:

Comme l'a souligné dans la réponse ci-dessous la delete() méthode est incorrect, car il n'accepte que la clé primaire comme un entier. Donc, en utilisant deleteAll()

 $this->ProductVouchers->deleteAll([       
   'ProductVouchers.id'=>$id,
   'ProductVouchers.client_id'=>'NULL'
 ]);

Ce produit aussi rien dans le journal ou de toute erreur. À essayer:

 $this->ProductVouchers->deleteAll([
   'ProductVouchers.id'=>$id,
   'ProductVouchers.client_id'=>NULL
 ]);

Ce produit...

 DELETE `ProductVouchers` 
 FROM `product_vouchers` AS `ProductVouchers`   
 WHERE `ProductVouchers`.`id` = (17)

Qui est à la fois tort et bizarre (ce qui est le point de fixation??)

Pourquoi quoi? Je ne suis pas la question?
Mise à jour de ma question - désolé n'était pas très clair. produit de ma frustration

OriginalL'auteur Mike Miller | 2015-03-19