そのため、Zend Framework のフォームでフィルターを使用すると問題が発生します。
フォーム要素にフィルターを設定すると、要素に提供されるデータがあらゆる方法でフィルター処理されます。そのため、フォームで isValid() を呼び出すと、'Int' フィルターは文字列 "1" を int 1 に変換します。しかし、要素の値を文字列 "1" に設定すると、その値は引き続き次のように変換されます。 int 1。
その振る舞いは私に問題をもたらします。たとえば、企業のルールにより、すべての float 値を 100 倍してから db に保存する必要があります (うん、それは最悪です)。そのためのフィルターを作成すると、10 は 1000 になります。しかし、フォームに入力すると、1000 は 100000 になります。
モデルではなく、フォームだけでそれを行う方法が必要です。そこで、フィルターを呼び出すタイミングを指定するフラグを作成することを考えました。
それを行うより良い方法はありますか?私はそれを探し回ったことを誓いますが、何も見つかりませんでした。
ありがとう。