複数選択できるselectやcheckboxをDBに保存しようとすると配列で値が飛ぶため、エラーになる。
配列から文字列に変換して保存し、取り出したときは文字列から配列へ変換する形で行う。
// コントローラ $this->set( 'select1', $this->Prefecture->find( 'list', array( 'fields' => array( 'id', 'prefecture') ))); // ビュー echo $this->Form->input( 'prefecture', array( 'type' => 'select', 'multiple'=> true, 'options' => $select1 // 'selected' => $selected // 規定値は、valueを配列にしたもの ));
// ビューから受け取ったprefecture配列をカンマ区切りに変換 $this->request->data['Model']['prefecture'] = implode( ',', $this->data['Model']['prefecture']);
// 規定値をビューへ渡す $this->set( 'selected', explode( ',', $this->data['Model']['prefecture']));