Как данные должны быть отформатированы в CakePHP, чтобы сохранить три уровня ассоциаций с saveAll ()? - PullRequest
1 голос
/ 10 мая 2011

Я пытаюсь создать страницу "Добавить событие". Вы можете добавить несколько «Расписаний» - для каждого из которых будут выполняться расчеты по датам / параметрам повтора, установленным для создания «Даты».

-Event hasMany Schedule
-Schedule hasMany Date
-Schedule belongsTo Event
-Date belongsTo Schedule

Вопрос в том, как данные должны быть отформатированы и / или как должны читаться имена полей, чтобы иметь возможность сохранять все () данные, чтобы даты (даты) также сохранялись. В настоящее время он работает, поэтому он сохраняет событие и расписание ... но я не могу заставить его также сохранить даты.

Ответы [ 3 ]

4 голосов
/ 10 мая 2011

ОБНОВЛЕНИЕ: см. Ответ, помеченный как «ответ». Этот ответ устарел.


Похоже, что это невозможно в соответствии с этим ответом stackoverflow .

то есть - нужно делать это вручную, а не в том же «saveAll ()».

1 голос
/ 09 октября 2014

На самом деле, начиная с CakePHP 2.1, вы можете сделать это с помощью saveAll (). Не имеет значения, какой у вас глубокий уровень в ваших моделях. Здесь вы можете увидеть новые функции.

http://book.cakephp.org/2.0/en/appendices/new-features-in-cakephp-2-1.html#model-saveall-model-saveassociated-model-validateassociated

1 голос
/ 10 мая 2011

saveAll работает только на моделях, которые непосредственно связаны.Из документа CakePHP:

Сохранение связанных данных с помощью saveAll () будет работать только для непосредственно связанных моделей.В случае успеха last_insert_id () будут сохранены в поле идентификатора связанных моделей, то есть $ this-> RelatedModel-> id.

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

...