CakePHPCakePHPでブログみたいなことをやろうとすると、ポストとカテゴリーはhasAndBelongsToMany(HABTM)で関連付けすると思います。操作的には記事を書いて、カテゴリーはチェックボックスで選択するよなーっと思ったのですが、僕くらいしょぼいレベルだとおもいっきりはまってしまったのでメモしておきます。CakePHPのバージョンは1.3です。Linkデータベース記事のデータを入れる「Posts」、タグ(カテゴリー)データを入れる「Tags」、関連付け用の「PostsTags」があります。Postsidbigint(20)namevarchar(100)Tagsidbigint(20)namevarchar(100)PostsTagspost_idbigint(20)tag_idvarchar(100)最低限こんなとこでしょうか。ModelhasAndBelongsToMany(HABTM)はpostに設定します。$tagData);}}チェックボックで配列になってるからうーん、、、とか深く考えないで「save($this->data)」だけでCakePHPが勝手に処理してくれるっぽいです。$form->end('投稿');フォームヘルパーにはチェックボックス用の「$form->checkbox」もありますが、配列から一気に作りたいときは「$form->input」を使います。「options」にコントローラーから受け取った「tagData」を入れます。データ更新(アップデータ)次にすでに登録してあるデータの更新(アップデータ)です。{$this->Post->save($this->data);}}コントローラーは特に特別なことないですね。$form->end('投稿');ビューはPostsTagsで関連してるところはselectedでチェックして、、、とか深く考える必要ありませんでした。新規追加(add.php)と同じで、関連付けされているタグには勝手にチェックされて表示してくれます。チェックボックスのバリデーション最後にチェックボックスのバリデーションを行います。postモデルに以下を追加します。'1つ以上選択してください。CakePHPコントローラーです。何もしなかったらチェックボックのエラーが表示できなかったので、わざわざメッセージを取得しています。$errors['Tag']);}}}Viewのチェックボックの取得したエラーメッセージをチェックボックスの下に表示させています。'</div>';}これで一応1つも選択されてなかったときにエラー表示されます。上手いやり方があると思いますが僕のスキルではこの程度でした。REPLYNAMEE-MAILURLコードを書く場合は<pre>で囲んでください。WixこのブログではjQueryやWordPressを中心としたWeb制作関係のことを書いております。ご意見ご感想などお気軽にコンタクトフォームよりお問い合わせください。Web関係のお仕事も募集しております。