HABTMで相手のテーブルのフィールドを指定する

まっちー

まっちー

二つのテーブルがHABTMで関連づいている場合、関連づいている相手のテーブルのフィールドを指定するには、コンテイナブルというビヘイビアを使うと良いらしい。

ビヘイビアを使用するには、モデルにビヘイビアの指定を追加しても良いし、特定の箇所でしか使わないような場合はコントローラーで追加しても良い。

//modelで追加する場合
class User extends AppModel {

 € € € var $actsAs = array('Containable');

}

//controllerで追加する場合
$this->User->Behaviors->attach('Containable');

例えばUserとTagがHABTMで関連づいているとしたら、以下のような感じでフィールドを指定する。

$params = array('contain' => array('Tag.id', 'Tag.name'));

$this->User->find('all', $params);

LIGはWebサイト制作を支援しています。ご興味のある方は事業ぺージをぜひご覧ください。

Webサイト制作の実績・料金を見る

この記事のシェア数

プログラマのまっちーです。酒が大好きです。ある一定量のお酒を飲むと壊れたレディオモードに入り、同じことを繰り返す癖があります。宜しくお願いいたします。

このメンバーの記事をもっと読む
デザイン力×グローバルな開発体制でDXをトータル支援
お問い合わせ 会社概要DL