読者です 読者をやめる 読者になる 読者になる

hasmanyのテーブルに対して条件を設定する方法

del_flg = 0のhasmanyテーブルを取得したい例 $this->[モデル名]->hasMany['関連モデル名']['conditions'] = '関連モデル名.del_flag = 0'; $data = $this->[モデル名]->findAll()) foreachを使えば、hasMany 内のテーブルが増えても大丈夫 foreach ($this->…

bind、unbind、recursive を使う際の注意点

コントローラーでモデルを呼び出し、そのモデル内でbindModel等している場合、そのbindModelの設定は、コントローラーの処理が終わるまで引き継がれるため注意。 一回のアクションで何度も同じモデルを呼び出すこと自体、おかしい事も考えられるため効率が悪…

モデル内でbelongsToテーブルに条件を設定する方法

モデルAとBはbelongsな関係を持ち、 モデルBとCはhasOneな関係を持つ時、 モデルA内で $this->B->hasOne['C']['conditions'] = 'C.point < 0'; とすれば C.point < 0 のデータのみ取得できる。 ※ただしAとB自体は条件を満たさないデータも取得され、 あくま…

モデル内でbelongsToテーブルのリレーションを解除する方法

モデルAはBとbelongsToな関係 var $belongsTo = array('B'); モデルA内でBのhasManyテーブルであるC、Dを解除したい $this->B = new B(); $this->B->unbindModel(array('hasMany' => array(C,D))); $this->recursive = 2; return $this->find('all'); ※$this…