Find différent de plusieurs id. cakephp 3

Par Jérôme_v, il y a 6 ans


Bonjour,
je commence "doucement" avec cakephp 3. Et je cherche à afficher une liste de produits, différent de plusieurs id.

Je fais pour cela un "find 'list'"

$query = $this->Productsetudes->find('list', [ 'keyField' => 'product_id', 'valueField' => 'product_id' ]) ->where(['Productsetudes.etude_id' => $etude_id]); $ids = $query->toArray();

Je récupère une liste ($ids)
Enssuite j'aimerais récupérer les produits "différents" de la liste ($ids)

exemple:

'conditions' => [ 'Products.id != ' => $ids, ],

Pour récupérer les produits "correspondant" à la liste c'est facile, je fais cela

'conditions' => [ 'Products.id IN ' => $ids ],

Mais "diferents de plusieurs", je sais pas comment faire. je me retrouve avec une erreur : "Cannot convert value of type array to integer "

Merci d'avance

3 réponses

Jérôme_v, il y a 6 ans

Merci Kareylo,
J'avais essayé "NOT", mais pas "NOT IN" ^^

Kareylo, il y a 6 ans

Et juste ne fonctionne pas ?

'conditions' => [ 'Products.id NOT IN ' => $ids ],
Kareylo, il y a 6 ans

Après véirication, il semblerait y avoir une méthode notIn() dans le QueryBuilder :

$query = $cities->find() ->where(function (QueryExpression $exp, Query $q) { return $exp->notIn('country_id', ['AFG', 'USA', 'EST']); });

Plus d'infos ici