2011-04-29 76 views
1

我在CakePHP中有一個表單來將信息保存到多個模型中。 我的第一個模型是「世界」,我沒有問題,這些字段的驗證是正確的,它被正確保存到數據庫。 第二種模式是「國家」,我用的是這樣的:關係元素的表單驗證

echo $this->Form->input('Country.0.name'); 

這是正確保存到數據庫中,但沒有驗證(如樓梯必填項),並沒有AUTOMAGIC(內容的自動檢測類型)。 第三個模型是「地區」,我使用相同的代碼作爲第二個,但沒有驗證,沒有automagic和不存儲...

有人可以幫忙嗎?

謝謝 塞巴斯蒂安

+0

我想要做同樣的事情,你找到答案了嗎? – dccarmo 2011-07-26 18:51:42

回答

0

沒有看到你的代碼的其餘部分,我猜測你是想多個國家在同一時間保存。該模型預計的數據來以特定格式:

$this->data['Model']['field']; 

什麼你逝去的是:

$this->data['Model'][0]['field']; 

該模型不能解釋它。解決這個問題的方法是在您收集數據並獨立發送每個請求時構建一個foreach。

foreach($country as $field) { 
    $data['Country']['field'] = $field; 
    // add other fields that are required 

    if($this->Country->validates($data)) { 
     $this->Country->create(); 
     $this->Country->save($data); 
    } else { 
     // error handling 
    } 
} 

好運和快樂編碼!

+0

Actualy,'$ this-> data ['Model'] [0] ['field'];'是您希望用hasMany關係保存相關模型數據時Cake等待的格式:[link](http:// book.cakephp.org/view/84/Saving-Related-Model-Data-hasOne-hasMany-belongsTo)。 – 2011-04-29 18:29:53

+0

我想要的是這樣的: 'echo $ this-> Form-> input('World.name'); echo $ this-> Form-> input('Country.0.name'); echo $ this-> Form-> input('City.0.name');' 我在哪裏使用'$ this-> World-> saveAll($ this-> data);'在控制器中保存一個新的世界,一個新的相關國家和一個新國家的新相關城市。 – 2011-04-29 18:35:02