CakePHPのformヘルパーでcheckboxを1個だけ表示したい時
騙された!CakePHP formヘルパーの普通に書くとcheckboxは配列で渡ってしまうぞ
本日仕事納めのITかあさん
ITかあさんは本日仕事納め。今日はCakePHPの formヘルパー checkboxについてお送りします
CakePHP formヘルパーで、1個だけのcheckboxを作りたい
『公開する』『承認する』みたいな1個だけのcheckboxを作りたい時、ありますね。
ごく一般的なformヘルパーのやり方ですが、
以下のようにやると、一つ問題が発生します。
$options = array('hoge1'); echo $form->input('Model.field', array('type' => 'select', 'multiple' => 'checkbox', 'options' => $options, 'label' => false, 'div' => false, 'id'=> false));
配列になってしまうぞ
このように配列で出力されますが、1個しかチェックがない場合でも配列になりますので、
このまま行くとSQLにArrayが渡ってエラーになります。
<input type="checkbox" name="data[Model][field][]" value="0"/>
Checkboxが1個しか無い場合は書き方が違うよ
1個しかない場合は、こんな風にシンプルに書きます。
echo $form->input('Model.field', array( 'type' => 'checkbox', 'label'=> false, ));
あまり使わないかもしれないけど、
boolen型などTRUE、FALSEみたいなデータ値だと有効です