14/04/08 22:23:04.86
>>229
checkboxは他のtypeと違って1個もチェックしないと、空文字列すら送らないんだよね。
なのでFormHelperでチェックボックスを生成した場合、hidden value="0"がチェックボックスと一緒に用意される。
だからバリデーションもそれにあわせて、0は真偽でいうと偽の値になってるんだ。
オレオレフレームワークからCakePHPに乗り換えたときは、そういうところに押し付けがましさを感じていたけど、
慣れてしまえばまぁ合理的かなと思うよ。
チェックボックスをDBにあるマスターテーブルから生成するような場合(割とよくあると思う)、
valueはそのテーブルのidにするのが自然だし、idは1から始まるのが基本的だからね。
なので、CakePHPで開発していくなら、バリデーションを自作するより、
チェックボックスのvalue="0"は未選択とするように、変更するのをお勧めするよ。