Если я вас правильно понял, это абсолютно возможно (см .: Сохранение данных по связанной модели в официальной документации). Предполагая Post hasMany Image
и Image belongsTo Post
, вы настроите его следующим образом.
По вашему мнению, вы должны создать форму создания сообщения следующим образом:
<?php
$form->create("Post", array('action'=>'add','type'=>'file'));
$form->input("Post.title");
$form->input("Post.body");
$form->input("Image.0.upload", array('type'=>'file', 'label'=>__('Attach an image:',true));
$form->input("Image.1.upload", array('type'=>'file', 'label'=>__('Attach an image:',true));
?>
Это определяет быструю и грязную форму, которая отображает поля Post.title и Post.body и два виджета с вложенными файлами для двух новых изображений.
Тогда в вашем posts_controller.php
:
class PostsController extends AppController
{
/* stuff before PostsController::add() */
function add()
{
if (!empty($this->data)) {
if ( $this->Post->saveAll( $this->data, array('validate'=>'first'))) {
$this->flash(__("Post added.",true), 5);
}
}
}
/* Stuff after PostsController::add() */
}
Если данные вашего сообщения и изображения будут подтверждены, это сохранит новое сообщение, затем сохранит два изображения, одновременно и автоматически связав новые записи изображений с новой записью сообщения.