最近管理画面はBootstrapを必ず使っているので、尊敬してやまないSLYWALKERさんのBoostCakeをいつも利用させて頂いています。
BoostCakeのお陰で、ビューのForm作りが3倍楽になるのですが、ひとつだけ困ったことがありまして、マルチプルのチェックボックスでcheckedのチェックボックスがずれてしまうんですよね。
SLYWALKERさんが修正してくださいました!History for View/Helper/BoostCakeFormHelper.php – slywalker/cakephp-plugin-boost_cake
echo $this->Form->input('CustomerTag.id', array(
'type' => 'select',
'options' => $customerTagList,
'multiple' => 'checkbox',
'label' => array(
'text' => '顧客タグ',
),
'class' => 'checkbox-inline', // ここでclassを指定
));
こんな感じになってしまいます。
原因は、BoostCakeFormHelperの継承元のFormHelperの_selectOptionsメソッドでcheckedならラベルのクラスにselectedをセットすることにありました。
BoostCake側の_selectOptionsではlabelのクラスとして継承元で追加したselectedに加えて、inputのclassで指定したcheckbox-inlineの両方を出力することからlabelのクラス指定が2つ出力されてしまいます。
その結果2つ目のcheckbox-inline指定が無効になってしまうようでした。*1
そこで、BoostCakeFormHelperに以下のような修正を加えて、input側ので指定したクラスと継承元でセットされたクラスをマージするようにしました。
BoostCakeFormHelper.php
SLYWARKERさんがGithub上で修正してくれたのでそちらを参照してください→ cakephp-plugin-boost_cake/View/Helper/BoostCakeFormHelper.php at master ? slywalker/cakephp-plugin-boost_cake
- 長い。。あとで自分で読んで意味がわかるか不安。 [↩]

