2012-04-03 43 views
1

我有一個模型和hasMany關係到另一個模型。saveAll不會保存cakephp 2.0中的相關數據處理後的多個選擇表格

將單個字段的數據保存到主模型中,並將下拉選擇輸入中的數據保存到關聯的模型中。

當我試圖手動創建一個數組並使用saveAll時,一切正常,數據被保存。但選擇輸入的問題在其名稱中。正確的格式爲:

array(
    'Article' => array('title' => 'My first article'), 
    'Comment' => array(
     array('body' => 'Comment 1', 'user_id' => 1), 
     array('body' => 'Comment 2', 'user_id' => 12), 
     array('body' => 'Comment 3', 'user_id' => 40), 
    ), 
) 

當創建選擇列表和傳遞選項數組,我們只能setone標籤名像Comment.body,但我們必須使用Comment.0.bodyComment.1.body

所以格式的帖子數據對於Cake成功使用saveAll是不可讀的。

有沒有人遇到過這個問題 - 用正確的名稱和值生成多個選擇輸入?

回答

0

您是如何生成表單的?正確的格式是你說的第二個,Comment.0.body。爲此,你需要這樣的事:

echo $this->Form->input('Comment.0.body'); 
echo $this->Form->input('Comment.1.body'); 

會生成:

<input type='text' id='Comment0Body' name="data[Comment][0][body]" /> 
<input type='text' id='Comment1Body' name="data[Comment][1][body]" /> 
+0

你好Paulo和謝謝,但問題是如果我有20個元素相關,所以我有這是一個多個下拉選擇標記,問題是我們設置輸入名稱選擇一次$ this-> Form->選擇('Model.field',$ options)) – Cassius 2012-04-17 15:02:23

2

這個問題是通過切換到$hasAndBelongsToMany關係解決。