将数据放入编辑视图Cakephp 3

时间:2019-03-02 14:14:35

标签: cakephp cakephp-3.0

我无法在“编辑”表单中显示“联系人”数据。在“编辑”视图中,它显示了“志愿者”和“人员”数据,但没有显示联系人数据。要带来数据,我必须更改“ 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 :(得分:0)

正如the manual所说,“默认情况下,save()方法还将保存一级关联”。您正在尝试保存第二级关联,因此“在构建保存嵌套关联的表单时,您需要定义应将哪些关联编组”。因此,您的patch语句应更像这样:

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