我有一个帖子索引视图调用一个元素,其中内容输入字段用于评论。
我这样称呼它
<?php echo $this->element('addcomment', array('post_id' => $post['Post']['id'])); ?>
这个工作正常,我在 addcomment 元素中传递了 post id 参数,因为 post_id 输入字段隐藏在 addcomment 中。当然,我不希望用户输入帖子 ID。
我已经设置了授权机制,以便允许向已识别(已连接)的用户添加评论。
当未连接的用户尝试添加评论时,他会收到登录屏幕。
登录后,他被重定向到添加评论表单。问题是它同时丢失了 post_id 变量的值。
Rem:如果用户在向帖子添加评论之前已连接,则它可以工作。
如果我的解释不清楚或您需要更多信息,请随时与我联系。
这是我的添加评论元素
<div class="Addcomment form">
<?php
echo $this->Form->create('Comment', array(
'url' => array('controller' => 'comments', 'action' => 'add')
)); ?>
<fieldset>
<legend><?php echo __('Add Comment'); ?></legend>
<?php if (isset($current_user['id']) && isset($post_id)): ?>
<?php $this->request->data['Comment']['user_id'] = $current_user['id']; ?>
<?php $this->request->data['Comment']['post_id'] = $post_id; ?>
<?php echo $this->Form->input('post_id', array('type' => 'hidden')); ?>
<?php echo $this->Form->input('user_id', array('type' => 'hidden')); ?>
<?php else: echo $this->Form->input('post_id'); ?>
<?php endif; ?>
<?php echo $this->Form->input('content', array('class' => 'comment')); ?>
</fieldset>
<?php echo $this->Form->end(__('Submit')); ?>
</div>