編集 - 元のエラーを修正しましたが、まだ別のエラーがあります
「Upvote」をクリックすると、「投票を保存できませんでした」というメッセージが表示されます。これは、何らかの理由で適切にクエリが実行されていないことを意味します (そうでない場合、レコードが保存されていないことがわかります)。また、「未定義のインデックス」というエラーが表示されますが、それが何を指しているのかわかりません。
これが私のテーブルです
Votes
id | user_id | vote
Posts
id | title | body | created | modified | user_id | vote_total
これは、posts/index.ctp にある賛成票へのリンクの 1 つです。
<td><?php echo $this->Html->link('Upvote', array('action' => 'vote', $post['Post']['id']))?>
したがって、postscontroller.php にある投票機能は次のとおりです。
public function vote($id=null){
$this->Post->Votes->recursive = 0;
$this->Post->id = $id;
$user = $this->Auth->User();
$userid = $user['id'];
$conditions = array('votes.id' => $id, 'votes.user_id' => $userid, 'votes.vote' => '1');
$data = $this->Post->Votes->find('All' , array('conditions'=>$conditions));
if (isset($data) && !empty($data)) {
echo '<p>User have already give a vote!</p>';
} else {
if($this->Post->Votes->validates()){
if ($this->Post->Votes->save($this->request->data)) {
$this->Session->setFlash(__('The vote has been saved'));
} else {
$this->Session->setFlash(__('The vote could not be saved. Please, try again.'));
}
}
}
}
この関係は私の Post.php モデルにあります。
public $hasMany = array(
'Votes' => array(
'foreignKey' => 'id'
)
);
この関係は User.php モデルにあります
public $hasMany = array(
'Posts' => array(
'className' => 'Post'
)
);