CakePHP: Jak aktualizować wiele rekordów w tym samym czasie za pomocą narzędzia Form helper
Na stronie edycji testu modelu chcę móc zaktualizować pole „Questions.order” na wszystkich powiązanych (przez hasMany) pytaniach z tego samego formularza.
PrzygotowałemRozdział książki o ciastkach na saveMany () / saveAll () w książce i używamModel.0.field syntax
ale nie wiem, jak powiedzieć CakePHPktóry rekord odpowiadaktóry wkład. Powinien#
wModel.#.field
odpowiadają polu identyfikatora pytania? Oto, co aktualnie robię:
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();
Formularz przesyła i wydaje się zapisywać, ale aktualizowanyorder
wartości nie odpowiadają właściwym rekordom pytań. Co ja robię źle?
Aktualizacja:
Tutaj jestorder
akcja w moim kontrolerze:
public function admin_order() {
$data = $this->request->data;
$this->Question->saveAll($data['Question']);
$this->Session->setFlash( "Order saved.");
$this->redirect( $this->referer() );
}