私は基本的に、プロジェクト テーブルと更新テーブルの両方のユーザーとコメントを返すことで、クエリの深さを拡張しようとしています。
サイト訪問者はプロジェクトを表示でき、その下に多くの更新がリストされています。
ユーザーは、最初のプロジェクトと以下の更新の両方にコメントを残すことができ、各更新とプロジェクトは任意のユーザーによって送信されます。
次の関係を設定していますが、これらは間違っている可能性があります。
Project.php (Model)
belongsTo - User
hasMany - Update, Comment
Update.php (Model)
belongsTo - Project, User
hasMany - Comment
Comment.php (Model)
belongsTo - Project, Update
hasAndBelongsToMany - User
User.php (Model)
hasMany - Project, Update, Comment
私の ProjectController.php のビューは次のとおりです。
public function view($id = null, $slug = null) {
$this->Project->id = $id;
$this->set('Projects', $this->Project->read());
}
ただし、これは以下を含む配列のみをエクスポートします。
Project
User (belonging to Project)
Comments (belonging to Project)
Updates (belonging to Project)
しかし、すべてのコメントとそれらのコメントのユーザーを含む、この完全な結果が欲しいです。
Project
User (belonging to Project)
Comments (belonging to Project)
User (belonging to each Comment)
Updates (belonging to Project)
User (belonging to Update)
Comments (belonging to Update)
User (belonging to each Update Comment)
データベースでは、コメントは 1 つの ID (user_id) によってユーザーに関連付けられており、それ以上のユーザーに関する詳細は含まれていません。