cakePHP(v3.x)、多対多のアソシエーションのリンクを貼る。

同じ$group_idを介して多対多のアソシエーションを組んでいるArticlesとTagsについて考えます。

今、新しいArticleのEntityを保存したい時、以下のようにしてTagとのアソシエーションリンクを貼ることができます。


$tags = $this->Tags->find("all")->where(["Tags.group_id" => $group_id, "Tags.type IN" => $tag_types])->toList(); $article = $this->Articles->newEntity($article); $this->Articles->save($article); $this->Articles->Tags->link($article, $tags); // Linkを構築