Принесите данные в режиме редактирования Cakephp 3 - PullRequest
0 голосов
/ 02 марта 2019

Не могу получить данные "Контакт", отображаемые в форме редактирования.В представлении «Изменить» отображаются данные о волонтерах и людях, но не данные о контактах.Чтобы получить данные, я должен изменить "echo $ this-> Form-> input ('direccion');"по echo $ this-> Form-> input ('persona.contacto.direccion');но при этом контактная форма не сохраняется.Какое решение?

В моей форме

echo $this->Form->input('direccion'); echo $this->Form->input('persona.nombre'); echo $this->Form->input('persona.voluntario.cv');

В моей функции редактировать контроллер

$particulare = $this->Particulares->get($id, [
        'contain' => ['Voluntarios','Beneficiarios','Personas'=>['Contactos'=>['Paises','Provincias','Localidades']]]
    ]);


    if ($this->request->is(['patch', 'post', 'put'])) {
        $particulare = $this->Particulares->patchEntity($particulare, $this->request->getData());


        if ($this->Particulares->save($particulare)) {
            $this->Flash->success(__('Éxito! Los cambios han sido guardados correctamente'));

            return $this->redirect(['action' => 'index']);
        }
        $this->Flash->error(__('Los cambios no pudieron ser guardados. Por favor, inténtelo de nuevo.'));
    }

1 Ответ

0 голосов
/ 02 марта 2019

Как указано , руководство говорит: «По умолчанию метод save () также сохраняет один уровень ассоциаций».Вы пытаетесь сохранить второй уровень ассоциаций, поэтому «При создании форм, сохраняющих вложенные ассоциации, вам необходимо определить, какие ассоциации следует маршалировать».Итак, ваш оператор исправления должен выглядеть примерно так:

$particulare = $this->Particulares->patchEntity($particulare, $this->request->getData(),
    'associated' => ['Voluntarios', 'Personas.Contactos']
);
...