Enregistrer les champs suplémentaires dans une relation HABTM
Afin d'enregistrer les valeurs dans un ou plusieurs champs d'une table de jointure on procède par ajouter un tableau à $this->data qui a comme nom le nom du model de jointure ex: $this->data['PostsTag'], puis dans ce tableau on insère le ou les éléments tel que suivant :
/* $tags est un tableau contenant les valeurs du/des Tag reçu par la vue, un tableau a été utiliser pour des raisons de simplicité, biensur il faut adapter l'exemple à votre cas */
$tags = /* les valeurs reçu depuis la vue */;
foreach($tags as $e){ $tmp = array(); $tmp['tag_id'] = $e['id']; $tmp['status'] = $e['status']; $this->data['PostsTag'][] = $tmp; }
$this->Post->bindModel(array('hasMany'=>array('PostsTag')));
$this->Post->saveAll($this->data);
remarque on a pas ajouter la clé étrangère du Post à savoir post_id dans $this->data['PostsTag'] vue que l'id du Post n'est pas encore disponible, au moment de l'enregistrement Cake va l'ajouter ;)
Mohamed MELLOUKI













