単一のチェックボックスを CakePHP 2.6.2 の FormHelper::input で扱う方法
忘れそうなので、単一の "0"
か "1"
を取るだけのチェックボックスを作る方法を記録しておきます。
FormHelper::input
に渡すオプションの hiddenField
が true
の場合、そのチェックボックスと同じ name
属性値を持ち、value
属性値に 0
を持つ input[type=hidden]
要素が直前に挿入されます。
hiddenField
のデフォルト値は true
です。
チェックされていればチェックボックスの値が、されていなければ input[type=hidden]
要素の値が送られます。
下記の例では default
と value
の値が同一なため、デフォルトでチェックされたチェックボックスが出力されます。
<?php // ビュー echo $this->Form->input('Foo.bar', [ 'type' => 'checkbox', 'default' => '1', 'value' => '1', ]);
<?php // モデル public $validate = [ 'bar' => [ 'definedValue' => [ 'rule' => [ 'inList', [ '0', '1', ] ], 'required' => true, 'allowEmpty' => false, 'message' => '定義されていない値です', ], ], ];
環境
CakePHP 2.6.2 で確認しました。