In meiner CakePHP App habe ich ein Option-Modell.Bearbeiten und speichern Sie mehrere Datensätze in CakePHP
In meiner Option/Indexansicht zeige ich 2 Optionen mit Eingängen und Optionsfelder an. Ich möchte beide aktualisieren, aber ich bekomme ein seltsames Verhalten.
Die Option, die ich ändere, wird nicht gespeichert und stattdessen wird eine neue Option mit dem neuen Wert eingefügt.
Hier ist meine Ansicht
<h2 class='page-title' id='manage-options'>Opzioni</h2>
<?php echo $form->create(null, array('action'=>'index')); ?>
<table>
<tr>
<td><?= $options[0]['Option']['name']?></td>
<td><?= $form->radio(
$options[0]['Option']['id'],
array(
'1' => 'Sì',
'0' => 'No'),
array('default'=> $options[0]['Option']['value'], 'legend'=>false)
);?>
</td>
</tr>
<tr>
<td><?= $options[1]['Option']['name']?></td>
<td><?= $form->input($options[1]['Option']['id'],array('label'=>false,'value' => $options[1]['Option']['value']))?></td>
</tr>
</table>
<?php echo $form->submit('Salva'); ?>
<?php echo $form->end(); ?>
Und mein Controller:
function index() {
if (!empty($this->data)) {
foreach($this->data['Option'] as $id => $value) :
$this->Option->id = $id;
$feedback = $this->Option->read();
$this->Option->saveField('value', $value);
endforeach;
$this->Session->setFlash('Opzioni aggiornate');
}
$this->Option->recursive = 0;
$this->set('options', $this->paginate());
}
Vor Posting hier verbrachte ich zwei Stunden Antworten googeln und experimentieren. Ich weiß, über saveAll()
und ich habe diese Lösungen ausprobiert:
http://planetcakephp.org/aggregator/items/2172-cakephp-multi-record-forms http://teknoid.wordpress.com/2008/10/27/editing-multiple-records-with-saveall/
Ich habe meinen Code wurde Tweaking diese Muster zu passen, aber ich habe keine Ergebnisse (oszillierend zwischen ‚nicht funktioniert‘ und ‚nicht funktioniert und Ich bekomme eine Extra-Aufnahme '), also habe ich beschlossen, meinen Originalcode zu posten.
Können Sie helfen, indem Sie den richtigen Weg angeben? Davis
Der erste Parameter ist nicht die ID, sondern ein Array-Index, der auf das N-te Element des Ergebnis-Arrays zeigt. Auch die generierten Eingabefelder sind vollkommen korrekt (data [Option] [id]). Danke trotzdem für den Vorschlag, aber es trifft nicht zu. – nutsmuggler