Я использую CakePHP 2.3, и я пытаюсь найти правильный способ выполнения связанной с этим экономии данных. Я установил форму загрузки изображения, которая сохраняет данные изображения, но в то же время я также хочу обработать сохраненное изображение таким образом, что при сохранении мое приложение должно проверить файл и извлечь все данные exif и добавить теги в качестве связанных тегов моделей ,CakePHP - Как добавить связанные записи в модель при сохранении?
Мои отношения
Picture hasMany Tags
Tag belongsTo Picture
Сейчас я пытаюсь использовать функцию обратного вызова Picture BeforeSave программно добавлять новые записи в массиве данных, но это не работает (это не сохранение добавленные данные).
PictureController массив
$this->Picture->create();
$this->Picture->saveAll($this->request->data);
данных после BeforeSave
Array
(
[Picture] => Array
(
[field1] => foo
[field2] => bar
)
[Tag] => Array
(
[0] => Array
(
[tag] => example
[value] => example
)
[1] => Array
(
[tag] => example 2
[value] => example 2
)
)
)
Как я могу добиться того, чего я хочу, не портя слишком много с контроллером? Я бы хотел, чтобы мой бизнес логики оставался в основном на модели.
Я только что пробовал, но он не работает. Вы имели в виду в контроллере, не так ли? Или я должен вызвать метод save * в обратном вызове beforeSave? – sangaran
yep, вы вызываете метод сохранения на контроллере .. проверьте эти примеры http://book.cakephp.org/2.0/ru/models/saving-your-data.html#model-saveassociated-array-data-null-array -options-array – pollirrata
Даже таким образом новые связанные данные, которые я «впрыскиваю» в мой beforeSave, не сохраняются. – sangaran