Zend_Form フィルタリングsetElementFiltersは最後に

5月 7th, 2009 by Fou Leave a reply »

ずーっと気にしてませんでした。 フィルター処理。
StringTrimぐらいはずっと標準でつけてはいたつもりだったんだけど、
今回ちゃんと動作を見たら フィルターが通らないではないか!?
特に間違うようなところは無いし、バグか!?と思ったけど人のサンプルを見たりしてなんとか解決。

参考にしたページ
http://ja.pastebin.ca/973780?srch=setElementFilters

setElementFilters()メソッドはどうやら最後に使うらしい。

悪い例

    $form = new Zend_Form();
    return $form->setAction('')
        ->setMethod('post')
        ->setElementFilters( array('StringTrim') )
        ->addElement( $form->createElement(
                'text', 'name',array(
                    'label'      => '名前',
                    'size'       => '60',
                    'required'   => true,
            )));

良い例

    $form = new Zend_Form();
    return $form->setAction('')
        ->setMethod('post')
        ->addElement( $form->createElement(
                'text', 'name',array(
                    'label'      => '名前',
                    'size'       => '60',
                    'required'   => true,
            )))
        ->setElementFilters( array('StringTrim') );

順番まで全然思い当たらなかったよ。

Advertisement

コメントを残す