2012-12-04 46 views
0

我第一次使用CakePHP(2.2.3),並且遇到此問題。 爲了嘗試saveAll()方法,我使用輸入助手創建了一個簡單的表單。CakePHP在saveAll()上使用輸入幫助器的無效數據格式

以下是表單代碼。沒什麼大不了。

$this->Form->create('Section'); 
$this->Form->input("Section.0.title"); 
$this->Form->input("Section.1.title"); 
$this->Form->end('Save'); 

根據CakePHP的文檔,爲了做一個saveAll(),你需要一個這樣的數組:

Array 
(
    [0] => Array 
     (
      [Section] => Array 
       (
        [title] => title 1 
       ) 
     ) 
    [1] => Array 
     (
      [Section] => Array 
       (
        [title] => title 2 
       ) 

     ) 

) 

不過,如果我傾倒$this->request->data,該陣列我從形式上得到的是這樣的:

Array 
(
    [Section] => Array 
     (
      [0] => Array 
       (
        [title] => title 1 
       ) 
      [1] => Array 
       (
        [title] => title 2 
       ) 
     ) 
) 

我想,在這樣一個簡單的情況下使用輸入助手時,$this->request->data數組應具有有效的格式。所以我想我錯過了一些東西,但我找不到什麼。

有沒有辦法以有效的格式獲取數組,還是我需要創建一個自定義方法來重寫它?

非常感謝您提前。

+1

什麼是你的模型關聯 –

+0

嗨科爾比蓋耶。我還沒有。但是,如果我按照上面的有效格式重寫控制器中的$ this-> request-> data'數組(你知道,只是爲了看看會發生什麼),一切正常。所以我想這與模型關聯無關。謝謝你的回答;-) –

+0

你試過實際存錢嗎?我的猜測是你的格式很好。 – Dave

回答

0

爲了保存單個模型的多條記錄,該陣列應該數值索引,所以$this->Section->saveAll($this->request->data['Section']);會爲你做它

+0

謝謝@Ceeram!這解決了我的問題。哦,男孩,我不知道我怎麼沒有想到這個......太簡單了! ;-) –