saveAll () для вложенных данных - PullRequest
3 голосов
/ 01 февраля 2012

Когда я пытаюсь создать новую запись Template с массивом $ data, модели Template, Group и Product сохраняются правильно. Но вложенное Calcfield (которое имеет hasMany of Group) не сохраняется. :( Группа и продукт имеют множество шаблонов.

Возможно ли это вообще?

$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 ]

2 голосов
/ 01 февраля 2012

Нет, насколько я знаю, рекурсивные сохранения невозможны. Вам нужно будет поместить их в отдельный массив, а затем сохранить их после первоначального сохранения.

1 голос
/ 25 июня 2016

Начиная с CakePHP 2.1, можно сохранять глубоко вложенные модели, используя параметр deep в saveAll (начиная с CakePHP 2.1)

ref.http://book.cakephp.org/2.0/en/models/saving-your-data.html?highlight=saveall#model-saveassociated

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...