複数選択できる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']));