skillup

技術ブログ

PHP

cakePHPでの多対多について

投稿日:

cakePHPで多対多のリレーションを使う機会があったので、その時のメモなどを。

多対多を説明するときには例によってブログの投稿(Item)とタグ(Tag)の関係が一番わかりやすいですね。

テーブル構成

テーブル構成が下記のようだったとします。

※実際はitemとtagはいろんなプロパティを持ってますが説明のために簡略化してます。

relation

ソース

実際にリレーションでitemからtag、あるいはtagからitemを取得するときは下記のように取得します。

基本的にはItemとTagのモデルに多対多の設定を書けばOKです。

Item.php

Tag.php

あとはControllerで普通にpaginateやfindメソッドを使用すれば、お互いのデータを紐付けて取得することができます。

リンク

http://dim5.net/cakephp/hasandbelongstomany-configuration.html

http://book.cakephp.org/2.0/ja/models/associations-linking-models-together.html

-PHP
-

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

no image

nginxをいれているサーバーでのPHP停止

ちょっとトラブル対応的なネタです。 先日、PHPで書かれているシステムが突然使用できなくなるという連絡があるお客様からありました。 原因としてはカゴヤのサーバー再起動により、php-fpmが起動してい …

no image

PHPにおけるDI

Contents1 DIについての概要2 自分が作った簡単なサンプル(リンクの写経)3 参考リンク DIについての概要 PHPでのDI(Dependency Injection)に関して。 オブジェク …

no image

PHPでのリフレクション

Javaなどでは結構やりましたが、PHPでも動的にインタンス生成→メソッド呼び出しということをやれるとやれることが一気にふえるため、ちょっとメモです。 Contents1 ソース2 参考リンク ソース …

no image

cakeでのJOINについて&session

Contents1 cakeでのJOIN2 cakeでのsessionについて cakeでのJOIN cakePHPでは基本、hasManyなどの修飾子を使えば、リレーションをとることができますが、検 …

no image

nginxの設定&php-fpmインストール

本日、久しぶりにPHPのWebアプリを別サーバーに移行したのですが、nginxの設定でかなり手間取りましたのでちょっと記録しておきます。 Contents1 nginxの設定1.1 インストール1.2 …