[Ethna]$form_templateを使うときの注意点

親クラス
    var $form_template = array(
        'user_id' => array(
            'type'          => VAR_TYPE_INT,
            'min'           => 1,
            'max'           => 2147483647,
        ),
子クラス
    var $form = array(
        'user_id' => array(
            'checkhoge'           => true,
        ),
このようなことをしたいとします。
checkhogeプラグインが呼ばれるときには、type,min,maxなどのチェックが終わっていることを当然期待してしまうのですが、残念ながらそうはなりません。

子クラスのvalidate()を呼び出すと、バリデーションの順番は下記のようになります。

checkhoge → type → min → max

こうなると、checkhogeにはINT型の自然数が渡されるという保証がないので、-1やら'a'やらいろんな値が入ってきてしまいます。
checkhoge内で独自にチェックしないといけないのです。

よい方法はないものか・・・
カテゴリ: