Bonjour,
Je développe actuellement un projet, et j'ai un petit souci qui se présente. J'ai enfin toute ma structure en place, mes models, mes controllers, et je m'attaque donc aux liaisons, et là c'est le drame !
J'ai deux models en HABTM, et très logiquement une table de jointure qui leur permet de se retrouver les uns les autres.
Premier model :
class Elevage extends AppModel {
var $actsAs = array('Containable');
var $hasAndBelongsToMany = array(
'Groupe' => array(
'classname' => 'groupe',
'foreignKey' => 'elevage_id',
'assocationForeignKey' => 'groupe_id',
'fields' => array('nom', 'id')
)
);
}
Second model :
class Groupe extends AppModel {
var $actsAs = array('Containable');
var $hasAndBelongsToMany = array(
'Elevage' => array(
'classname' => 'elevage',
'foreignKey' => 'groupe_id',
'assocationForeignKey' => 'elevage_id',
'fields' => array('nom', 'id', 'slug', 'description')
)
);
}
Actuellement, je travaille sur le controller Elevage que voici :
class ElevageController extends AppController {
function index() {
$this->Elevage->contain('Groupe');
$d'elevage'] = $this->Elevage->find('all', array(
'fields' => array('id', 'nom')
));
debug($d);
$this->set($d);
}
}
Et le souci, c'est qu'à l'affichage des résultats, l'array contient bien le ou les groupes liés, mais aussi et surtout les données de la table de liaison, et c'est vraiment gênant. Pourtant, j'ai bien précisé les champs que je souhaitent récupérer, et j'ai eu beau chercher sur le net, aucune trace d'une erreur du genre.
Voici un débug de résultats :
Array
(
[elevage] => Array
(
[0] => Array
(
[Elevage] => Array
(
[id] => 1
[nom] => Test
)
[Groupe] => Array
(
[0] => Array
(
[nom] => Federation
[id] => 9
[GroupesElevage] => Array
(
[id] => 1
[elevage_id] => 1
[groupe_id] => 9
)
)
[1] => Array
(
[nom] => Plante
[id] => 10
[GroupesElevage] => Array
(
[id] => 650
[elevage_id] => 1
[groupe_id] => 10
)
)
)
)
}
A noter que le même problème se produit dans l'autre sens, quand on est dans Groupes et qu'on obtient les élevages via le containable.
Si quelqu'un a une idée, merci d'avance ! :)