atomicbox

Macでウェブ制作するための開発関連メモを残していきます。(html/JavaScript/jQuery など)

Month: 6月 2015

【PHP】PHP入門・基本のきほん2

【PHP】PHP入門・基本のきほんに引き続き、PHP初心者の方向けにPHPのことを解説します。
前回はとりあえずPHPファイルを作ってみよう、というところの話だったのですが、今回は座学的にPHPを見て行ってみようと思います。
前回の続きというよりは、合わせて読んでいただけたら…という内容になっています。

Continue reading

【cakePHP】アソシエーションとContainableBehavior

久しぶりにcakePHPの記事。

cakePHPではアソシエーションという、テーブルとテーブルの関連付け機能を核にもっていて、なかなか便利です。

  • 「ユーザー(User)」は「プロフィール(Profile)」を一つだけ持つ
  • 「ユーザー(User)」はお気に入りの「曲(Music)」をたくさん持つ
  • 「ユーザー(User)」はお気に入りの「アーティスト(Artist)」をたくさん持つ
  • 「ユーザー(User)」はお気に入りの「映画(Movie)」をたくさん持つ
  • 「曲(Music)」は提供する「アーティスト(Artist)」を一つだけ持つ

このような構造を設定できるので、「ユーザー(User)」情報を取得した時に、関連する「プロフィール(Profile)」、「曲(Music)」、「アーティスト(Artist)」、「映画(Movie)」さらには曲に関連する「アーティスト(Artist)」のデータまでまとめて取ってくるということが簡単にできます。これがアソシエーションです。

しかし、このアソシエーション。
簡単に設定できるのですが、設定してしまうとユーザー情報と曲のデータだけ欲しいというときにも、アーティストや映画の情報まで引っ付いてきてしまいます。おまけに、不要なアーティストや映画の全フィールドがくっついてきます。

「今回はアーティストと、映画のデータはいらないから」と、関連を一個一個削除することもできますが、ContainableBehaviorを使うと、「曲のデータだけいるよ」と設定すればその他の余計なものが勝手に除外されるので直観的だし楽です。
さらに、フィールドのフィルタリング(曲データの中でも、「曲名」だけ取ってくるなど)も簡単に扱えます。

※ContainableBehaviorはあくまでアソシエーションに対してフィルタリングをするので、アソシエーションの設定と置き換わるものではありません。

Continue reading

© 2017 atomicbox

Theme by Anders NorenUp ↑