like a shit.
制御の効かないinputメソッド
inputでやると書くのは簡単
1 | echo $this->Form->input('UserInterests.interest_id', array('multiple' => 'checkbox')); |
だけど、HTML生成で色々勝手にやられるので、デザイン当て込みがむしろ大変↓
1 2 3 4 5 | <div class="input select"><label for="UserInterestsInterestId">Interest</label><input type="hidden" name="data[UserInterests][interest_id]" value="" id="UserInterestsInterestId"/> <div class="checkbox"><input type="checkbox" name="data[UserInterests][interest_id][]" value="1" id="UserInterestsInterestId1" /><label for="UserInterestsInterestId1">ショッピング</label></div> <div class="checkbox"><input type="checkbox" name="data[UserInterests][interest_id][]" value="2" id="UserInterestsInterestId2" /><label for="UserInterestsInterestId2">旅行</label></div> イカ省略ゲソ |
書くのはだるいけど、自由に制御できるcheckboxメソッド(とlabelメソッド)
1 2 3 4 5 6 7 8 | <ul class="interest clearfix"> <?php foreach($interests as $key => $val) { echo '<li>'; echo $this->Form->checkbox('UserInterests.interest_id.', array('value' => $key, 'hiddenField' => false)); echo $this->Form->label(null, $val, array('class' => 'anyclass')); echo '</li>'; } ?> </ul> |
↑モデル名の後ろに’.’を付けるのがちょっとした匠の技()
↓で、生成されたこれ
1 2 3 4 5 | <ul class="interest clearfix"> <li><input type="checkbox" name="data[UserInterests][interest_id][]" value="1" id="UserInterestsInterestId"/><label for="UserInterestsInterestId" class="labelinterest">ショッピング</label></li> <li><input type="checkbox" name="data[UserInterests][interest_id][]" value="2" id="UserInterestsInterestId"/><label for="UserInterestsInterestId" class="labelinterest">旅行</label></li> <li><input type="checkbox" name="data[UserInterests][interest_id][]" value="3" id="UserInterestsInterestId"/><label for="UserInterestsInterestId" class="labelinterest">読書</label></li> イカ省略ゲソ |