CakePHPのformヘルパーでcheckboxを1個だけ表示したい時 ITかあさん

ITかあさん

CakePHPのformヘルパーでcheckboxを1個だけ表示したい時

騙された!CakePHP formヘルパーの普通に書くとcheckboxは配列で渡ってしまうぞ

CakePHPのformヘルパーでcheckboxを1個だけ表示したい時

本日仕事納めの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みたいなデータ値だと有効です
初夏のJavaScript祭 in サーキュレーションビル ForPro