スポンサードリンク

CakePHP
CakePHP

日々作業で使っている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型で検索するときに気をつけること

スポンサードリンク