2010-12-07 15 views
1

でhaveManyの関連付けを削除する方法を私はmodel2をhasManyのモデルmodel1を持っています。特定のmodel1からすべてのmodel2sを削除するにはどうすればよいですか? IDが1234のもの?これは、SQLでは、CakePHPは:SAVEALL

UPDATE 
    model2 
SET 
    model1_id=NULL 
WHERE 
    model1_id=1234; 

を意味しますが、これをCakePHPの方法で定式化する方法はありますか?私は、引数として次の配列でmodel1->saveAllを試してみました:意味

Array 
(
[Model1] => Array 
    (
     [id] => 1234 
    ) 

[Model2] => Array 
    (
    ) 
) 

は、モデル2は、単に空の配列に設定します。しかし、これは機能しません。今、hasMany(object1側から見た)関係にある別の特定のobject1に属するobjects2をどのように「関連付けを解除する」ことができますか?

+0

だけ明確にするために、あなたはMODEL2へそれらmodel1_idのポインティングを無効にしたいですか? –

+0

@andreas no、 'model1_id'は' model2'テーブルから 'model1'テーブルを指します。そして、はい、私はそれらを無効にしたいです。 – joni

答えて

2

updateAll($fields, $conditions)

$this->Model2->updateAll(array('model1_id' => null), array('model1_id' => 1234)); 

を使用してみてください。ここはCakePHPはこれについてDocsです。

+0

ありがとう、これは動作しますが、もっと洗練された/もっとCakePHPwayのようなアプローチがあるかどうか知っていますか? – joni

+0

これはcakephpの方法です... Docsを見る –

関連する問題