質問: バージョン ----- CakePHP3 やりたい事 ----- ・チェックボックス(複数選択可)をデータベースに登録 ・◯◯;◯◯;◯◯と1つのカラムに登録 できている事 ------ データベースのカラム(◯◯;◯◯;◯◯)と照合して既に値がある場合はcheckedにする。 ところまで、完成しています。その他のファイルはいじっていません。 ``` ✓edit.ctp echo $this->Form->input('hoge29',[ 'type' => 'select', 'options' => $checkbox, 'value' => explode(';', $hoges->hoge29), 'checked' => true, 'multiple' => 'checkbox', 'label' => false, ]); ``` わからない事 ------ ・edit.ctpで選択されたチェックボックス(配列)の受け取り方 ・その値を◯◯;◯◯;◯◯という形式で1つのカラムに追加・更新する方法 以上です。 宜しくお願い致しますm(_ _)m
回答: コメント等のやり取りを見て、思うところですが、 このような要件の場合、データベースは正規化すべきと思われます。 あえて非正規化している理由は何かあるのでしょうか? 現状の設計で起こる問題 =========== 一つ前の質問を参照し、現状で起こりうる問題の具体例を示します。 例えば、以下のようなデータになっている場合、「コーヒー」を含むレコードをどうやって取り出しますか? | ID | CHECKBOXES | | --- | --- | | 1 | コーヒー,紅茶,ココア | | 2 | コーヒー牛乳,紅茶 | | 3 | コーヒーゼリー |