我无法在“编辑”表单中显示“联系人”数据。在“编辑”视图中,它显示了“志愿者”和“人员”数据,但没有显示联系人数据。要带来数据,我必须更改“ 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.'));
}
答案 0 :(得分:0)
正如the manual所说,“默认情况下,save()方法还将保存一级关联”。您正在尝试保存第二级关联,因此“在构建保存嵌套关联的表单时,您需要定义应将哪些关联编组”。因此,您的patch语句应更像这样:
$particulare = $this->Particulares->patchEntity($particulare, $this->request->getData(),
'associated' => ['Voluntarios', 'Personas.Contactos']
);