1

Symfony FormBuilder の appendNormTransformer とは? appendClientTransformer と prependClientTransformer の代わりにいつこれを使用する必要がありますか?

4

1 に答える 1

3

Form.phpのクラス ドキュメント ブロックから抜粋:

To implement your own form fields, you need to have a thorough understanding
of the data flow within a form field. A form field stores its data in three
different representations:

 (1) the format required by the form's object
 (2) a normalized format for internal processing
 (3) the format used for display

A date field, for example, may store a date as "Y-m-d" string (1) in the
object. To facilitate processing in the field, this value is normalized
to a DateTime object (2). In the HTML representation of your form, a
localized string (3) is presented to and modified by the user.

アプリ(1)データ、(2)正規化データ(3)、クライアント データも同様です。

さて、あなたの質問については、どのデータを変換したいかによって異なります。(2)が ( からに)変換する必要があるクライアント データである場合は、または(3)を使用する必要があります。appendClientTransformerprependClientTransformer

反対に、正規化されたデータを ( から(1)に) 変更したい場合は、または(2)を使用する必要があります。appendNormTransformerprependNormTransformer

したがって、正規化トランスフォーマーは(1)(2)( (1)normalizeTransformer -> (2)) の間に位置します。クライアント トランスフォーマーは と の間(2)に位置します(3)( (2)clientTransformer -> (3))

また、Symfony 2.1 では、append および prepend メソッド ([append|prepend][Norm|Client]Transformer) が add メソッド (add[Norm|Client]Transformer) に置き換えられる可能性があることに注意してください。詳細については、GitHub のプルリクエストを参照してください。情報。

これが役に立てば幸いです、
マット

于 2012-04-20T15:43:47.837 に答える