NotEmpty というだけに0が入力されても普通はOKなんですが、Filter で Int を使うと isEmpty となってしまいます。
これは Validate_NotEmpty の中で empty 関数を利用してチェックしているからです。。。
普通のValidateクラスなら問題ないんですが、この NotEmpty はやっかいな事に IsRequred で必須を指定した時に強制的に追加される Validate です。
removeValidate で削除してオリジナル Validate を追加しようにも自動で追加される Validate は isValid のタイミングで追加されるので対象外になってしまうようです。。。
対応策は見つからず。。。
前回のMulti系エレメントの問題で Int にキャストする事で回避と書きましたが、合わせるとどうしようもない問題に変わります。。。
Multi系の時に array_keys を利用しているのですが、こいつは Int ぽいのしか無ければ必ずIntにしてしまうからです。。。
DBには0以外で管理するしか無いですね。。。
boolの変わりにIntを使う時でも1と2でやった方が良いです。
オリジナルFilterを作成して対処する方法がありました。
http://developer.unlax.com/2009/10/zendframework-element0.html
0 件のコメント:
コメントを投稿