2010-09-27 76 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); 
    } 

感謝亞歷山大的提示。