ログ日記

作業ログと日記とメモ

validation拡張機能追加

基本的な入力チェックはフレームワークに入ってるんだけど、もっとアプリ独自のチェックもバリデータでチェックしたい。
フレームワークの基本クラスをmaple流に拡張できるようにはしていたものの、バリデータクラスは普通にnewしていた。


設定ファイルにバリデータのクラス名を書くようにしておいて、それがあった場合はそっちを優先するようにした。
バリデータはコアの一部になっていてコントローラから呼び出している。だからコンポーネントとして自動生成云々の機能が使えない。ちょっとまずいなぁと思いつつ、取り急ぎ修正してみた。


これでDB接続して値をチェックするなどのバリデータが設定ファイルで書けるようになった。
こんな感じ。

[validator]
mail:required:1 = "メールアドレスが入力されていません"
mail:mail:1 = "メールアドレスが正しい形式ではありません"
mail:notExists = "既に登録されているメールアドレスです"

1はストッパーでそれ以下の同一変数に対するチェックを終了する。
例えばこれを mailValidate.ini として保存して、アクションの設定ファイルで

[include]
validation = mailValidate.ini

[validator]
error = mailError

[result]
mailError = MailInputForm

のように書く。新規登録や既存データ修正など複数のアクションから使い回せる。includeで読み込んだ設定はマージされる。
便利になってきた。
maple流(?)のini設定ファイルでもかなりやれることがあるな。