2010-09-27 131 views
1

我有一个数组字段中HTML:CakePHP的保存阵列领域(的hasMany)

​​

该字段可以通过点击按钮被复制,我怎样才能将它保存到模型槽控制器?

这是我当前的代码:

$this->Vino->VinoDescription->save($this->data); 

但这返回一个SQL错误:

Query: INSERT INTO `vino_description` (`subtitulo`, `descripcion`, `id_vino`) VALUES (Array, Array, 60) 

另外,如果我尝试在HTML更改名称:

< input type="text" name="WineDescripcion[][Description]" /> 

这是有效的,但只保存1条带有“NULL”值的记录。提前致谢。

+0

iirc,即使用的结构,然后在数据数组中没有其他模型使用saveAll($ this - >数据),没有像这样的foreach。 – dogmatic69 2010-09-28 20:00:55

回答

0

尝试在插入前处理您的控制器中的数据。您尝试将值插入为数组。这是不正确的。不提供来自发布数据的数组值。您可以使用print_r($this->data)来查看您的发布数据结构。

+0

这是与当前字段名的输出: WineDescripcion [] [字幕] WineDescripcion [] [描述] [VinoDescription] =>数组 \t( \t \t [0] =>数组 \t \t \t ( \t \t \t \t [字幕] =>标题1 \t \t \t) \t \t [1] =>数组 \t \t \t( \t \t \t \t [描述] =>说明1 \t \t \t) \t \t [2] =>数组 \t \t \t( \t \t \t \t [字幕] =>标题2 \t \t \t) \t \t [3] =>数组 \t \t \t( \t \t \t \t [描述] =>描述2 \t \t \t) \t) – eft0 2010-09-27 15:59:44

-1
foreach ($this->data as $row) { 
    $insertData = array('subtitle' => $row['Subtitle'], 'description' => $row['description']); 
    $this->Vino->VinoDescription->save($insertData); 
} 

也许你在你的语法subtitulodescripcion错误。也许它应该是subtitledescription

+0

未定义指数,becouse它公司的S阵列的每个元素 – eft0 2010-09-27 16:27:34

+0

不会数据在$ this-> data中,因为字段名称不是数据[Something] – dogmatic69 2010-09-28 19:59:34

0

这是怎么最终解决这个问题:

for ($i=0; $i<=count($this->data['VinoDescription'])-1; $i++) { 
     $this->Vino->VinoDescription->create(); 
     $insertData = array('id_vino' => $this->Vino->id, 'subtitulo' => $this->data['VinoDescription']['subtitulo'][$i], 'descripcion' => $this->data['VinoDescription']['descripcion'][$i]); 
     $this->Vino->VinoDescription->save($insertData); 
    } 

感谢亚历山大的提示。