如何调用表单元素并保存数据

时间:2013-07-24 20:25:16

标签: forms cakephp element

我制作了发布和评论的控制器和模型。

我的帖子索引调用了我的添加评论视图。它工作正常,但添加注释视图打开另一页。

然后,我将添加注释视图添加到元素中,以便将directy调用到我的帖子页面,但是当我点击我的注释添加视图的提交按钮时,它不会保存任何内容。

当我查看提交按钮显示的链接时,它指向我的帖子索引视图。

如何使其有效?

以下是我的评论元素的代码

div class="comments form">
<?php echo $this->Form->create('Comment'); ?>
    <fieldset>
        <legend><?php echo __('Add Comment'); ?></legend>
    <?php


        $this->request->data['Comment']['user_id'] = $current_user['id'];
        $this->request->data['Comment']['post_id'] = $post_id;

        echo $this->Form->input('post_id', array('type' => 'hidden'));
        echo $this->Form->input('user_id', array('type' => 'hidden'));

        echo $this->Form->input('content');
    ?>
    </fieldset>
<?php echo $this->Form->end(__('Submit')); ?>
</div>

这是调用该元素

的索引后视图代码的一部分
<div class="element">
        <?php echo $this->element('add_comment', array('post_id' => $post['Post']['id'])); ?>
        </div>

我必须补充一点,这个div类元素位于可点击的div中。但是点击对于我在视图中的其他按钮工作正常。


1 个答案:

答案 0 :(得分:1)

更改表单的网址,将其指向评论控制器中的添加操作,如此

echo $this->Form->create('Comment', array(
    'url' => array('controller' => 'comments', 'action' => 'add')
));

默认情况下,如果您没有传递url`参数,则表单指向当前已呈现的操作(在本例中为post控制器),因此您需要指定要发布的位置。检查the docs以了解该选项。