2012-02-01 2 views
3

Когда я пытаюсь создать новую запись шаблона с массивом $ data, модели Template, Group и Product будут сохранены правильно. Но вложенное поле Calcfield (которое hasMany группы) не сохраняется. :(Группа и продукт 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/ru/models/saving-your-data.html?highlight=saveall#model-saveassociated-array -data-null-array-options-array. В уведомлении говорится: Сохранение связанных данных [...] будет работать только для ** непосредственно ** связанных моделей – powtac

+2

Теперь вы хотите проверить это: http: //book.cakephp.org/2.0/ru/models/saving-your-data.html#model-saveassociated-array-data-null-array-options-array (см. «глубокий» вариант?) – colares

+0

@colares thanks для обмена! Это новое с 2,1 ... – powtac