2009-11-19 5 views
1

J'ai deux modèles liés HABTM (documents et personnes).Les données HABTM ne sont pas sauvegardées (cakephp)

class Person extends AppModel { 
    var $name = 'Person'; 
    var $hasAndBelongsToMany = array(
     'Document' => array(
      'className' => 'Document', 
      'joinTable' => 'documents_people', 
      'foreignKey' => 'person_id', 
      'associationForeignKey' => 'document_id', 
      'unique' => false 
     ) 
    ); 

class Document extends AppModel { 
    var $name = 'Document'; 
    var $hasAndBelongsToMany = array(
     'Person'=>array(
      'className' => 'Person', 
      'joinTable' => 'documents_people', 
      'foreignKey' => 'document_id', 
      'associationForeignKey' => 'person_id', 
      'unique' => false 
     ) 
    ); 

J'ai la vue ajouter des documents avec une case à cocher population pour chaque personne qui sera lié au document.

echo $form->input('People', array('type'=>'select', 'multiple'=>'checkbox', 'options'=>$people, 'label' => 'People: ')); 

Ceci est la ligne du contrôleur qui est supposé effectuer la sauvegarde. J'ai remarqué que les données n'étaient pas enregistrées dans la table documents_people. Donc, j'ai jeté $ this-> data.

La partie du document ressemble à ceci:

[Document] => Array 
    (
     [file_name] => asdasd 
     [tags] => habtm 
     [People] => Array 
      (
       [0] => 6 
       [1] => 12 
       [2] => 15 
      ) 

     [image] => img/docs/2009-11-19-233059Jack.jpg 
    ) 

Ce sont les IDs des gens que je veux associé à ce document. Cependant, rien n'est transféré à documents_people. Qu'est ce que j'ai mal fait?

Répondre

7

Peut-être votre tableau $this->data devrait avoir une section 'Personne', et non un pluriel 'Les gens'

Avez-vous essayé ...

echo $form->input('Person'..... 
+0

si simple, mais correct. –

Questions connexes