我想知道CakePHP中是否有一种方法可以在表单中嵌套多个模型?
我想要完成的是创建一个用于创建帖子的表单,该表单还将包含用于添加将自动连接到创建的帖子的图像(单独的模型)的字段.
类似于Ruby on Rails的东西**accept_nested_attributes_for**.
如果我理解正确,这绝对可以完成(参见:在官方文档中保存相关模型数据).假设Post hasMany Image和Image belongsTo Post,您可以通过以下方式进行设置.
在您的视图中,您将创建一个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));
?>
Run Code Online (Sandbox Code Playgroud)
这定义了一个快速而脏的表单,用于呈现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() */
}
Run Code Online (Sandbox Code Playgroud)
假设您的帖子和图像数据有效,这将保存一个新的帖子,然后保存两个图像,同时并自动将新的图像记录与新的帖子记录相关联.
| 归档时间: |
|
| 查看次数: |
1808 次 |
| 最近记录: |