2012-02-01 17 views
3

當我嘗試使用$ data數組創建一個Template的新條目時,模板,組和產品的模型被正確保存。但嵌套的Calcfield(它是hasMany of Group)不會被保存。 :(羣組和產品是模板的hasMany。嵌套數據上的saveAll()

這是可能的呢?

$this->Template->create(); 
$this->Template->saveAll($data, array('validate' => false)); 

// $data looks like this: 

Array 
(
    [Template] => Array 
     (
      [title] => 
      [shorttitle] => Wie auch immer 
      [place] => Hannover 
      [size] => 
     ) 

    [Group] => Array 
     (
      [0] => Array 
       (
        [title] => Hosting 
        [order] => 
        [Calcfield] => Array 
         (
          [0] => Array 
           (
            [title] => Hosting 
            [value] => 0 
            [description] => 
           ) 
          [1] => Array 
           (
            [title] => Strom 
            [value] => 0 
            [description] => 
           ) 
         ) 
       ) 
     ) 

    [Product] => Array 
     (
      [0] => Array 
       (
        [share] => 10 
        [businessunit] => Marketing 
       ) 
      [1] => Array 
       (
        [share] => 30 
        [businessunit] => intl. CRM 
       ) 
     ) 
) 

回答

2

沒有,遞歸節省是不可能的,因爲據我所知,你需要堅持那些在一個單獨的數組,然後將它們保存在初始保存後。

+0

你是對的,同時我在文檔中找到它:http://book.cakephp.org/2.0/en/models/saving-your-data.html?highlight=saveall#model-saveassociated-array -data-null-array-options-array在通知中說: 保存相關數據[...]僅適用於**直接相關模型 – powtac 2012-02-01 16:48:13

+2

現在,您想查看以下內容:http: //book.cakephp.org/2.0/en/models/saving-your-data.html#model-saveassociated-array-data-null-array-options-array(請參閱'深'選項?) – colares 2012-07-07 18:34:23

+0

@colares謝謝共享的!這是自2.1以來的新... – powtac 2013-01-22 22:57:53