cakephp保存数组字段(hasMany)

时间:2010-09-27 15:25:46

标签: php cakephp

我在HTML中有一个数组字段:

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

单击按钮可以复制此字段,如何通过控制器将其保存到模型中?

这是我目前的代码:

$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]" />

这样可行,但只保存带有“NULL”值的1条记录。提前谢谢。

3 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分: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);
    } 

感谢亚历山大的提示。

答案 2 :(得分:-1)

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

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