Pages

2009年10月2日金曜日

Zendframework Elementで選択系を用いる際に値が0の場合の対処方法

以前にElementにRadioやSelectなんかの選択系を用いた時にInArrayでチェックしてるから入力された値をキャストしなくてはならないと書いたんですが、その時の0値の対処方法を今さら思いつきましたw

なんでこんな簡単な事を。。。って感じですがw

デフォルトではIntにキャストするFilterがInt1つしか無いのですが、このIntは単純にキャストするだけなので、キャストする前のStringが本当にIntらしい値なのかをチェックしてそうでなければキャストしないオリジナルFilterを作れば良いだけでした。。。

今回作ったのはこれです。。

class Plugin_Filter_StrIntToInt implements Zend_Filter_Interface
{
    public function filter($value)
    {
        if ($value === '') return $value;

        $cast = (string)((int)$value);

        if ($cast === $value) {
            return (int)$value;

        } else {
            return $value;
        }
    }
}

0 件のコメント:

コメントを投稿

Followers