4

しばらく探していましたが、DataTransformerユースケースに関する特定のドキュメントを見つけることができませんでした。もちろんSymfony2クックブックの章がありますが、それは私の特定のユースケースを解決しません. 単一のフィールドの変換に関する情報しか見つかりませんでした。

エンティティ

2 つのエンティティがあります (0..n の関係があります)

注文

  1. priceTotal (他のフィールドは関係ありません)

オーダーライン

  1. 価格要因
  2. 1個あたりの価格
  3. 価格合計

使用事例

Order->priceTotal毎回ビューでその場で計算したくありません。OrderLineそのため、送信時にいくつかの値を再計算するトランスフォーマーを作成したいと思います。

  1. Order->priceTotalすべての合計である必要がありますOrderLine->priceTotal
  2. OrderLine->priceTotal( amount* priceFactor* pricePerPiece) _

Controllerこのロジックをすべての関数に入れたいわけではないので、これDataTransformerが正しい解決策 (?) であると仮定します。FormType は、このタイプの検証の正しいレベルですか?

4

1 に答える 1

3

DataTransformer はあなたが探しているものではないと思います。DataTransformer は、フォーム内の 1 つのフィールドに対して送信されたコンテンツを変更できますが、その周囲のフィールドにはアクセスできません。これはおそらく、LifeCycleCallbacks でやりたいことです。

http://docs.doctrine-project.org/en/2.0.x/reference/annotations-reference.html#annref-haslifecyclecallbacks

LifeCycleCallbacks の使用例を次に示します。

http://symfony.com/doc/current/cookbook/doctrine/file_uploads.html

やりたいことが反映されているわけではありませんが、LifeCycleCallbacks とは何か、およびその使用方法を教えてくれます。

于 2013-08-23T10:04:23.767 に答える