スポンサードリンク

日々作業で使っているCakePHP
今回はアソシエーション先のモデルの
条件指定です。
スポンサードリンク
アソシエーション先の条件を指定
hasManyでアソシエーションしているモデルの
条件を指定してから
データをひっぱてきてほしいということがありました。
データを取ってきてから分けるにしても
データ量が多いので先にできないかと思ってたら
できるんですね。
こちらの記事に載ってました。
(参考)
cakePHP アソシエーションしてるHasManyを条件文にAdd Star
$this->[モデル名]->hasMany['関連モデル名']['conditions'] = '関連モデル名.del_flag = 0'; $data = $this->[モデル名]->findAll());
findでデータを取る前に
条件を指定するということです。
フィールドを指定する場合は
$this->[モデル名]->hasMany['関連モデル名']['fields'] = array('field1','field2','field3'); $data = $this->[モデル名]->findAll());
同じようにフィールドを指定するだけです。
おまけ
今回、条件指定したかったのは
日時を指定範囲でほしかったからなんですが、
datatime型のBETWEEN文の書き方で
参考になるものがあったので
覚書として書いておきます。
例えば2013年6月1日~2013年6月30日までの
データを取りたい場合です。
BETWEEN '2013-6-01' AND '2013-7-01'
後の方の日付は次の月の初日を指定すると
その月の日にちを指定できるようです。
(参考)
MySQLでDateTime型のカラムをDate型で検索するときに気をつけること
スポンサードリンク