编辑视图中的数据Cakephp 3

问题描述 投票:0回答:1

我无法获得编辑表单中显示的“联系”数据。在编辑视图中,它向我显示志愿者和人员数据,但不显示联系人数据。要带来数据,我必须更改“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.'));
    }
cakephp cakephp-3.0
1个回答
0
投票

正如the manual所说,“默认情况下,save()方法也会保存一个级别的关联”。您正在尝试保存第二级关联,因此“在构建保存嵌套关联的表单时,您需要定义应该编组哪些关联”。所以,你的补丁语句看起来应该更像这样:

$particulare = $this->Particulares->patchEntity($particulare, $this->request->getData(),
    'associated' => ['Voluntarios', 'Personas.Contactos']
);
© www.soinside.com 2019 - 2024. All rights reserved.