Я работал с cakephp и смог создать несколько простых моделей и отношений.Я специально пытался реализовать ассоциацию hasMany.Моя проблема связана с попыткой обновить дочерние элементы.
Для целей моего примера я предполагаю, что у меня есть класс модели «Родитель» и «Ребенок».Я могу создавать для просмотра и добавлять страницы без каких-либо проблем.Тем не менее, я не имею такой же успех на странице редактирования.На странице редактирования я могу отображать как родительские, так и дочерние поля.Однако, когда я иду, чтобы сохранить форму, вместо обновления дочерних элементов, она просто добавляет эти строки в дополнение к существующим.Я не уверен, почему это происходит.Я где-то пропускаю параметр?
Это мой код для страницы редактирования
echo $this->Form->create('Parent', array('action' => 'edit'));
echo $this->Form->input('title');
echo $this->Form->input('body', array('rows' => '3'));
echo $this->Form->input('id', array('type' => 'hidden'));
$x = 0;
foreach($this->request->data['Child'] as $child){
print $this->Form->input("Child.$x.name");
$x++;
}
И это функция редактирования в моем ParentController
public function edit($id = null) {
$this->Parent->id = $id;
if ($this->request->is('get')) {
$this->request->data = $this->Parent->read();
} else {
if ($this->Parent->saveAll($this->request->data)) {
$this->Session->setFlash('Your post has been updated.');
$this->redirect(array('action' => 'index'));
} else {
$this->Session->setFlash('Unable to update');
}
}
}