やかんブログ

symfony1.2 で入力の一致チェックを行う場合の注意事項

2009年05月01日(金)09:00|mori

こんにちは、森です。symfony1.2 を使う上で、少し細かい注意事項を見つけたので、ブログ記事にしてみます。題材は入力の一致チェックです。たとえば、入力欄に「パスワード」と「パスワード(確認)」を作成した場合、sfValidatorCompare を用いて、以下のように書くと思います。


$v = new sfValidatorCompare('password', '===', 'password_again');

ところがこれを実行すると、sfValidatorCompare ‘===’ による比較がサポートされていないため、エラーとなります。


$v = new sfValidatorCompare('password', '==', 'password_again');

とすると当然、”000000″ と “000000000″ が等しいと判断されてしまします。この問題を回避するには、sfValidatorCompare を継承した子クラスを作成するか、sfValidatorCompare を使わないなどの個別の対応が必要のようです。 なお、sfValidatorCompare そのものに対する機能追加パッチを本家に送ったところ、symfony1.3 で取り込んでいただけることになりました。はじめてのパッチだったため、すごく嬉しかったです。

参考資料 symfony Forms in Action > 付録B – バリデータ

この記事に関するお問い合わせはこちら

ページの先頭へ