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

LaravelでのAPI実装

Laravelで外部からAPI叩いてデータ入力みたいなことをしたかったのでこれを機に勉強。認証とかを通してないのでそのまま公開すると危険です・・(汗) 参考リンク [PHP] Laravel5.6で、 …

no image

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

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

no image

PHPでのPDF出力 基本&日本語出力

今回はPHPでのPDFファイルの出力です。 Contents1 ライブラリ2 ソース3 参考リンク ライブラリ 使うライブラリはFPDFというライブラリです。 http://www.fpdf.org/ …

no image

ループ処理+switch

PHPでちょっと小ネタ foreachやwhileのようなループを抜けるときにcontinueを使うんですが、その中にswitchが入っていると、switchに対してのcontinueがきいてしまって …

no image

テンプレートエンジンTwigについて

SmartyにかわるテンプレートエンジンとしてTwig(ツィッグ)を勉強中。 といってもテンプレートエンジンなので基本的なことはほとんど一緒っぽいですが。 Contents1 インストール2 基本的な …