Re: $html->checkboxのバグ?

昨日初めてCakePHP(1.2)を触った俺が試してみましたよ。

チェックボックスを出力するのに、

$html->checkbox('User/active_flag',NULL,$value);

とした時に$valueエスケープされないというお話。

1.2でそのまま動かしたら、そもそも$valueが入りません。cake/libs/view/helpers/form.php を見た感じ、引数はハッシュで指定するっぽい。

$html->checkbox('User/active_flag', array('value' => $value));

これでOK。HTMLの出力はこんな感じ。

<input type="hidden" name="data[User][active_flag]" value="0" id="UserActiveFlag_" />
<input type="checkbox" name="data[User][active_flag]" value="&lt;b&gt;bo&#039;ld&quot;&gt;" id="UserActiveFlag" />

ちゃんとエスケープされてますね。ということで、1.2では直ってるようです。

で、何でhiddenの要素まで一緒に出力されてるのかが気になるわけだが。

意味が分からないのでドキュメントを探してみたら、日本語訳はまだされてないのでオリジナルを参照。

Creates a checkbox form element. This method also generates an associated hidden form input to force the submission of data for the specified field.

んー、やっぱり理由はよく分からん。

あと関係ないけど、はてダのPHPシンタックスハイライトは<?phpを書かないと機能しないのは不親切だと思った。断片的なコード貼り付けるのにダメじゃん。>|php|で指定してもダメ。これどうにかならんかな。