モデル間のリレーションにはアソシエーションというものを使うらしい
リレーションなんかさせなくっても個別にやればいいじゃん
とか思ってたんですけど単純なJOIN程度ならcakeがやってくれちゃうようです
4種類あって
設定方法は
<?php
class Gym extends AppModel
{
var $name = 'Gym';
var $hasMany = array('Fighter' =>
array('className' => 'Fighter',
'conditions' => '',
'order' => 'Fighter.p_name DESC',
'dependent' => true,
'exclusive' => false,
'foreignKey' => 'gym_id',
'finderQuery' => ''
)
);
var $belongsTo = array('Country' =>
array('className' => 'Country',
'conditions' => '',
'foreignKey' => 'country_id',
'dependent' => true,
'exclusive' => false,
'finderQuery' => ''
)
);
こんな感じです
}
foreignKeyには関連付けに利用する外部キーを設定する
これをしておくと例えばhasMenyが設定されているPostの場合
$this->Post->findAll()
とするとコメントの一覧もあわせて取得できたりする
リレーションなんかさせなくっても個別にやればいいじゃん
とか思ってたんですけど単純なJOIN程度ならcakeがやってくれちゃうようです
4種類あって
hasOne(user->profile個人とプロフィール)
-
hasMany(diary->comnt日記とコメント)
-
belongsTo(team->memberチームとメンバ)
-
hasAndBelongsToMany(日記のタグ見たいなつなぎのテーブル作って見たいなもの)
設定方法は
<?php
class Gym extends AppModel
{
var $name = 'Gym';
var $hasMany = array('Fighter' =>
array('className' => 'Fighter',
'conditions' => '',
'order' => 'Fighter.p_name DESC',
'dependent' => true,
'exclusive' => false,
'foreignKey' => 'gym_id',
'finderQuery' => ''
)
);
var $belongsTo = array('Country' =>
array('className' => 'Country',
'conditions' => '',
'foreignKey' => 'country_id',
'dependent' => true,
'exclusive' => false,
'finderQuery' => ''
)
);
こんな感じです
}
foreignKeyには関連付けに利用する外部キーを設定する
これをしておくと例えばhasMenyが設定されているPostの場合
$this->Post->findAll()
とするとコメントの一覧もあわせて取得できたりする
コメントする