2

Symfony2形式のprependClientTransformerとappendClientTransformerの違いは何ですか? prependClientTransformer、appendClientTransformer はいつ使用する必要がありますか。例はありますか?

4

2 に答える 2

3

これについて私が理解したこと:

DataTransformer を適用する FormType には、 getParent() メソッドで定義された親 Type があります。

prependClientTransformerは、渡された DataTransformerを、親の Type から適用されるものより前に適用します。

appendClientTransformerは、渡された DataTransformerを、親のTypeから適用されたものの後に適用します。

于 2012-04-18T13:56:37.480 に答える
0

ソースでわかるように、これらのメソッドはclientTransformers、フィールド データの変換に使用されるの呼び出しシーケンスを制御するために使用されます。カスタム フィールド タイプを作成する場合に便利です。

たとえばtag、タグの配列に内部的に変換されるカンマ区切りの値を取るフィールド タイプを作成したいとします。その親をtextフィールド タイプとして設定します。また、配列を文字列に、またはその逆に変換するタグ タイプのトランスフォーマーも作成しました。これで、タグ タイプの 2 つclientTranformerValueToStringTransFormerとトランスフォーマーが最後の位置に配置されます。したがって、データをフォームにバインドするか、フォームを送信すると、symfony はクライアント データを文字列に変換し、変換された文字列を配列に変換します (ここで説明されているように)。逆の場合は、配列を文字列に変換してから、文字列をクライアント値に変換します (ここで定義)。ただし、ユースケースは見つかりませんでしprependClientTransformerた:)。

于 2012-04-18T20:36:23.083 に答える