どうやらZend_Form_Elementの中身を見てみると、ValidateをElementに追加する時に同じ名前を登録しようとすると上書きされてしまうようだ。
これで困る事は、現在デフォルトで用意されているようなNoRecordExistsなんかである。
大体は1回しか利用しない事が多数だが、場合によっては2回以上利用する必要がある場合がある。
例えば
テーブルAとテーブルBに登録されていないメールアドレスならばOKとしたい場合である。
テーブルAをチェックするValidateを登録した後にテーブルBをチェックするValidateを登録するとクラス名が一緒のためテーブルBのみをチェックして判断してしまう。。。
対処方法としてはクラス名を変えてオリジナルの物を用意するしかない。
Abstract.php は別にいるので簡単にできるのだが、同じクラスが2個、3個と増えていくのは全く納得がいかない。。。。
これ位の事が想定できなかったとも考えにくいのだが、方法があるのか。。。
Validateを重複ありにする設定とか。。。
ちなみに1.8.0にあったNoRecordExistsなんかは1.6.1に安易に移植可能だった。
検証対象 Zend_Framework 1.6.1、1.8.0
0 件のコメント:
コメントを投稿