2011年8月4日木曜日

CakePHP フォーム周りメモ

CakePHPのフォーム要素はdivやlabelがあってどうも気に入らない。消したい。
ということで、マニュアル見てみる。
フォーム要素の自動生成 :: フォーム :: 主要なヘルパー :: マニュアル :: 1.3コレクション



下記のようにlabel,divをfalseをセットしてやると出力されなくなる。
<?php echo $this->Form->input('name', array('label'=>false, 'div'=>false));?>


あと、hasAndBelongsToManyの要素のフォームがmulitple属性指定されたselectなのも気に入らない。
「Ctrl」キー押しながら複数選択ってなんか敷居が高い気がするのでチェックボックスにしたい。下記のようにすればできる。
<?php echo $this->Form->input('Hobby', array('multiple' => 'checkbox'));?>


で、これもdivタグ、labelタグを消したいので、追加。
<?php echo $this->Form->input('Hobby', array('multiple' => 'checkbox','label'=>false, 'div'=>false));?>


見事に<div class="checkbox">が残る。これも消したいのでググる。
CakePHP form helper - HABTM multiple checkbox styling - Stack Overflow

cssでスタイリングできるよってな感じか。それは普通に分かるけれど。。。消したかったのです。

と、いうことで諦めて苦手なcssで。
div.checkbox{
    display:inline;
}
とりあえず1行で表示させたいだけなので、こんなでいいかな。