CakePHP: Comment mettre à jour plusieurs enregistrements en même temps avec le helper Form

Sur une page d'édition du modèle de Test, je veux être en mesure de mettre à jour les "Questions.afin" de terrain sur l'ensemble de il est associé (par hasMany) des questions de la même forme.

J'ai prêt de la Gâteau au chapitre de livre sur saveMany()/saveAll() dans le livre, et je suis en utilisant le Model.0.field syntax mais je ne peux pas comprendre comment le dire à CakePHP qui enregistrement correspond à qui d'entrée. Si le # dans Model.#.field correspondent à la question du champ de l'id? Voici ce que je suis en train de faire:

 echo $this->Form->create( 'Question', array('action'=>'order'));

$n = 0;
foreach ($questions_array as $question) : ?>
        <?php echo $this->Form->input('Question.'.$n.'.order' ); ?>
        <?php echo $this->Form->input('Question.'.$n.'.id', array('type'=>'hidden', 'value'=>$question['Question']['id']) ); ?>
        <input type="submit" value="Save" />
...
$n++;
endforeach;
$this->Question->Form->end();

La forme présente et apparaît pour sauver, mais la mise à jour order valeurs ne correspondent pas à la bonne question d'enregistrements. Ce que je fais mal?

Mise à jour:

Ici est la order action dans mon controller:

public function admin_order() {
    $data = $this->request->data;
    $this->Question->saveAll($data['Question']);
    $this->Session->setFlash( "Order saved.");
    $this->redirect( $this->referer() );
}
Êtes-vous l'incrémentation de $n?
Qu'est-ce que "Qset" et comment s'inscrit-il dans votre décrite question?
Dave a quelques bonnes questions, aussi je vois que votre formulaire contient un bouton "soumettre" sur chaque ligne (cela ne devrait pas être un problème, juste remarqué). Pourriez-vous modifier votre question et ajouter votre contrôleur de code, voir "comment" vous êtes en train d'enregistrer vos données
Je suis l'incrémentation de $n, et désolé pour la confusion avec la "Qset". C'est le nom de ma classe, mais j'ai voulu le remplacer par Question afin de la rendre plus claire. C'était un copier/coller de l'erreur, dont je viens de corriger.
Oui j'ai volontairement d'inclure un bouton "soumettre" à côté de chaque entrée (parce que la forme peut être très long). Je viens de mettre à jour la question avec le code du contrôleur. Merci

OriginalL'auteur emersonthis | 2013-04-21