この問題に関連する 2 つのテーブル、posts と postratings があります。モデルには次の関係があります。
Post hasmany Postrating
Postrating belongsto Post
テーブル スキーマは次のとおりです。
テーブルポスト
id | user_id | post | rating_post | ratings
テーブル評価
id | user_id | post_id | rating_post
アイデアは、投稿が存在する場合、ユーザーがそれを評価できるということです。評価により、テーブルratings
は新しいエントリを取得し、テーブルは ID が post_id の投稿エントリの更新posts
を取得します。
私の問題は、両方のテーブルに新しいエントリしか保存できないことです。で試してみましたsaveAssociated()
が、結果は を使用した場合と同じsaveAll()
です。
誰かが私を助けてくれたら、とても感謝しています。もちろん、必要に応じてさらに情報を提供します。
前もって感謝します
編集: //
PostratingsController のメソッド add は次のとおりです。
public function add($id = null) {
$this->loadModel('Post');
if (!$this->Post->exists($id)) {
throw new NotFoundException(__('Invalid post'));
}
if ($this->request->is('post')) {
$this->Postrating->create();
if ($this->Postrating->save($this->request->data)) {
if ($this->Postrating->save($this->request->data)) {
$this->Postrating->Post->id = $id;
$this->Postrating->Post->save($this->request->data);
$this->Session->setFlash(__('The postrating has been saved'));
$this->redirect(array('action' => 'index'));
}
} else {
$this->Session->setFlash(__('The postrating could not be saved.'));
}
} else {
$options = array('conditions' => array('Post.' . $this->Post->primaryKey => $id));
$this->request->data = $this->Post->find('first', $options);
}
$post = $this->Postrating->Post->find('list');
$users = $this->Postrating->User->find('list');
$this->set(compact('posts', 'users'));
$options = array('conditions' => array('Post.' . $this->Post->primaryKey => $id));
$this->set('posts', $this->Post->find('first', $options));
}