2 つのクラスの結合テーブルにいくつかのエントリを追加しようとすると、CakePHP で問題が発生します。
ここに私の結合テーブルがあります:
posts_comments
id
post_id
comment_id
私の投稿 モデル:
<?php
class Post extends AppModel {
var $hasManyAndBelongsTo = array('Comment')
}
?>
私のコメント モデル:
<?php
class Commentextends AppModel {
var $hasAndBelongsToMany = array('Post');
}
?>
私のコントローラー:
ForumController:
function save() {
if ($this->data) {
$this->loadModel('PostComment');
$this->layout = null;
debug($this->data);
$this->PostComment->save($this->data);
}
$this->redirect(array('action' => 'view', $this->data['PostComment']['PostId']));
}
そして私のview.ctp:
<?php
echo $this->Form->create('PostComment', array('url' => 'save', 'id' => 'save')); ?>
echo $this->Form->hidden('PostComment.PostId', array('value' => $id));
echo $this->Form->input('PostComment.CommentId', array('label' => '', 'type' => 'select', 'multiple' => 'checkbox', 'options' => $CommentName, 'selected' => $CommentId));
echo $this->Form->submit('save', array('id' => 'submit'));
echo $this->Form->end();
?>
をクリックするとsubmit
、何も送信されず、リダイレクトが発生します$this->data
が、BDD に含まれるデータは保存されません。
しかし、私が望んでいるのは、フォームを送信するときに、CakePHP が新しい投稿や新しいコメントを作成するのではなく、2 つの間の新しい関係が欲しいということです。
私はすでにそれを行うことに成功しましたが、私は使用しました
$this->myObject->query("INSERT INTO blablabla")
問題は、複数のチェックボックスがあることです。そのため、1 つのボックスがチェックされていないかチェックされているかを簡単に確認する方法がよくわかりません。