コメントのコンテンツ入力フィールドである要素を呼び出すポスト インデックス ビューがあります。
このように呼びます
<?php echo $this->element('addcomment', array('post_id' => $post['Post']['id'])); ?>
post_id 入力フィールドが addcomment に隠されているため、addcomment 要素に post id パラメータを渡します。もちろん、ユーザーが投稿IDを入力することは望ましくありません。
識別された (接続された) ユーザーにコメントを追加できるようにするために、認証メカニズムをセットアップしました。
接続していないユーザーがコメントを追加しようとすると、ログイン画面が表示されます。
ログイン後、コメント追加フォームにリダイレクトされます。問題は、その間に post_id 変数の値が失われることです。
Rem: 投稿にコメントを追加する前にユーザーが接続されていれば、機能します。
私の説明が明確でない場合や、さらに情報が必要な場合は、遠慮なくご連絡ください。
これは私の addcomment 要素です
<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>