あなたの他の投稿CakePHP Elements not updating tableを見ましたので、私はあなたの状況のアイデアを持っています。投稿モデルでコメントを表明しているようです。
Postsモデルのデータをアップロードするには、UploadsControllerで正しいとしますか?
コメントテーブルの名前がcomments
の場合は、それが投稿モデルに関連付けられていることを確認する必要があります。 Cakeの命名規則に従っている場合、Cakeはモデルとデータベーステーブルを自動的に関連付けます。しかし、彼らが実際に異なっている場合、あなたはあなたのポストモデル用のカスタムデータベーステーブルを指定することができます。
Post belongsTo Upload
Upload hasMany Post
:
<?php
class Post extends AppModel {
var $useTable = "comments" /*Or whatever you named your comments table*/
...
}
?>
あなたはまた、モデルのアソシエーションがポストとのアップロードの間に設定されていることを確認する必要がありますあなたが気付いたのは、
Post belongsTo Upload
Upload hasAndBelongsToMany Post
HABTMの理由はありますか? HABTMは、同じPostが多くの異なるUploadに属することを意味します。 hasManyは、投稿が1つのアップロードにしか属していないことを意味します。
最後に、今、モデルの関連付けが設定されていることを、あなたはコントローラに関連したモデルにアクセスすることができます。私は、hasManyのを使用している場合、私は、エラー データベースエラーを取得するための返信用
<?php
class UploadsController extends AppController {
...
function watch ($id = null) {
$this->Upload->id = $id;
$this->set('uploads', $this->Upload->read());
/* To get related comments (Posts) */
$related_comments = $this->Upload->Post->find('all', array(
'conditions' => array(
'Upload.id' => $id /* This condition makes it so only associated comments are found */
)
));
$this->set('comments', $related_comments);
}
...
}
?>
おかげで、私はHABTMを使用します エラー:SQLSTATE [23000]:整合性制約違反:1052 where句の 'uploadid'カラムが曖昧です $ related_commentsを使用すると、次のエラーが発生します。 致命的なエラー:/Applications/XAMPP/xamppfiles/htdocs/evolvids/app/Controller/UploadsController.php 57行目の非オブジェクトのメンバー関数find()を呼び出す また、私はコメントテーブルを破棄しましたモデルとはちょうどそれを投稿、任意のアイデアと呼びましたか? – 001221
ok hasManyステートメントを使用すると、データベースからエコーされた情報がページ上で3回複製されていますが、データベースエラーが発生しました(これはHABTMを使用した元の理由です)。なぜこのようなことが起こっているのか分かりません。限界を1に設定しましたが、違いはありません。 – 001221
私はそれを$ this-> Upload-> Postの代わりに$ this-> Postに変更すると完全に動作するので、心配はありません!私はページ上に重複するエントリがあるため、オリジナルのHABTMを保持しました。あなたの助けを借りてありがとう:) – 001221