Сохранение нескольких моделей HABTM одновременно - PullRequest
0 голосов
/ 18 сентября 2011

Поскольку я не могу найти много информации о сохранении двух моделей одновременно , у которых есть HABTM-отношение .

У меня есть форма подпискиподписаться на детей онлайн.Родители могут одновременно вводить нескольких детей и нескольких родителей.Таким образом, JS может добавить больше текстовых полей и сделать их действительными (Model.number.field)

  1. Я хочу проверить детей и менеджеров (не могу использовать имя родительской модели, поэтому родительский= менеджер в данном случае):

    if($this->Child->saveAll($this->data['Child'], array('validate' => 'only'))
        && ($this->Manager->saveAll($this->data['Manager'], array('validate' => 'only')))
    )
    {
        debug('form is valid!');
    }
    

    Этот код работает, только когда есть только 1 ребенок и 1 менеджер (= родитель).

  2. Как мнесохранить эти 2 модели с отношением HABTM одновременно?

Это отладка со значением $this->data: http://pastebin.com/m6dtBzga

1 Ответ

1 голос
/ 18 сентября 2011

Из документации:

Для сохранения нескольких записей одной модели $ data должен быть числовым индексированным массивом записей, подобным этому:

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

Команда для сохранения вышеуказанного массива $ data будет выглядеть так:

$this->Article->saveAll($data);

http://book.cakephp.org/view/1031/Saving-Your-Data

...