アーカイブ : HABTM

#CakePHPのhasAndBelongsToMany(HABTM)で、2つのテーブルの関係を削除したい。

これは悩みました。

例えばCakePHPのサイトのように、RecipeとTagとが多対多の関係でhasAndBelongsToMany()で定義されているとき、レシピに複数のタグを追加するには、Recipeモデルで

$data['Tag’] = array(1,2);
$this->create();
$this->saveAll($data);

なんてすればいいのですが、その関係を削除したいことがあります。単純に

$data['Tag’] = array();
$this->create();
$this->saveAll($data);

とすると、全くTagには影響はありませんでした。ではどうすればいいかというと、正解はこのサイト(Thanks!)。

array()をarray(false)にすればいいのですね。

$data['Tag’] = array(false);
$this->create();
$this->saveAll($data);

これはわかりませんでした。でも、何かおかしな仕様ですが、しかたありません。

Bookmark this on Google Bookmarks
このエントリーをはてなブックマークに追加
Bookmark this on FC2 Bookmark
Bookmark this on Livedoor Clip
Share on GREE