CakePHP3で図のようなテーブル構成だった場合、articles のデータを取得時にまとめて tags, article_tag_comments の情報を取得する方法について教えて下さい。
article_tag_comments は 中間テーブルである articles_tags に1:多でリレーションを持っています。
$this->Articles->find()->contain(['Tags'])->all() などとした場合、_joinData で articles_tags の情報を取得できますが、article_tag_comments の情報までは取得できません。
そこで、articles と tags はお互いに belongsToMany ですが、その宣言に加えてさらに articles_tags に hasMany を記述し、ArticlesTagsTable に hasMany で ArticleTagComments を指定することで実現はできたのですが、この方法は適切で最善なのでしょうか。。。
lang
1 2$this->belongsToMany('Tags'); 3$this->hasMany('ArticlesTags'); 4
belogsToMany を指定しているのに中間テーブルに hasMany を指定していることがなんだか無理がある気がして。。。
良い方法などありましたらご教示ください。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/05/30 03:03