Bonjour,

Voila je rencontre un petit problème avec mon code.

$this->belongsToMany('ZwaveClamps', [
            'through' => 'Box.ProdConsoClamps',
            'targetForeignKey' => ['source_id', 'home_id'],
            'foreignKey' => ['source_id', 'home_id'],
            'conditions' => [
                'ProdConsoClamps.source_type' => 'zwave'
            ],
            'className' => 'DomesticAppliances.PlugDevice',
        ]);

Et voici la déclaration de ma primary key dans PlugDevice :

$this->primaryKey(['id', 'home_id']);

Donc j'obtiens en débeugant une query tout ce qu'il a de plus logique qui fini comme ça :

 AND (ProdConsoClamps.source_id, ProdConsoClamps.home_id) IN (()))

Le soucis c'est que mon IN(())) est vide ... En fait la requete devrait ressembler à ça :

 AND (ProdConsoClamps.source_id, ProdConsoClamps.home_id) IN ((34, 2)))

Je l'ai testé dans phpMyAdmin et ca fonctionne comme ca.
Donc ma question, pourquoi mes primary key ne sont pas renseignées ?

PS: à Savoir, si dans PlugDevice je supprime ma primaryKey multiple et que je la remplace par une unique, ça fonctionne, le soucis c'est qu'il m'en faut 2 et non 1 seule ....

Merciii.

Aucune réponse