最近管理画面は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
- 長い。。あとで自分で読んで意味がわかるか不安。 [↩]