FuelPHP 勉強会 東京 Vol.2 で発表した「モデル間のリレーション」http://www.slideshare.net/web2citizen/fuel-phpvol2-14380264 の補足で、Many_to_Many の関係を維持したままの保存方法の例です。
親モデルに紐付ける子モデルの配列を渡して保存してやれば中間テーブルに関係性を保持するデータが保存されます。
<?php
// タグの登録処理
$tags = array();
foreach($tagnames as $tag_name){
$tag = Model_Tag::find()->where('name', $tag_name)->get_one();
// 新しいタグの場合はタグテーブルに追加
if(!$tag){
$tag = new Model_Tag();
$tag->name = $tag_name;
$tag->save();
}
array_push($tags, $tag);
}
$skill->tags = $tags;
$skill->save();