C::P::FormValidator::Simple::Auto
C::P::FormValidator::Simple::Auto を利用すると、各 action に入る前に YAML で記述された profile を元に Validation を行ってくれる。
初めは、メンテナンス性を考慮し、Profile の重複箇所を共通化するべく、Validation 用の action を定義していたが・・・同僚に
「例え Profile が重複していたとしても、YAML で視認性を向上させる事の方が大切ではないか?」
と指摘され、C::P::FormValidator::Simple::Auto を使い始める事にした。
YAML の ailas を使って重複を防ぐ努力をしてみた
--- xxx/search: name: - INT - &namelength [ LENGTH, 1, 256 ] xxx/add: name: - NOT_NULL - INT - *namelength
これが限界か・・・?
本当は、add 時に NOT_NULL だけ追加したいんですけどねぇ・・・。
FormValidator::Simple::Plugin::DBIC::Unique が使いたい
FormValidator::Simple::Plugin::DBIC::Unique を利用する場合、Model を渡す必要がある為、YAML では書けない。
無理矢理、書けるように拡張しようか否か一考中。
現在は、下記のようにしている。
return if !$c->form->invalid( 'name' ); $c->form( name => [ 'DBIC_UNIQUE', $c->model( 'DBIC::Users' ), 'name', ], );
invalid を使って、パラメータ name に関連する問題が無ければ、UNIQUE チェックを行う。