我一直在搜索,但无法在我的DataTransformer
用例中找到具体的文档。当然有the Symfony2 cookbook chapter,但它没有解决我的具体用例。我只能找到关于转换单个字段的信息。
我有两个实体(关系为0..n)
我不希望每次都在视图中动态计算Order->priceTotal
。这就是为什么我想在OrderLine
上创建一个变换器来重新计算提交时的几个值:
Order->priceTotal
应为所有OrderLine->priceTotal
OrderLine->priceTotal
应为(amount
* priceFactor
* pricePerPiece
)由于我不想将此逻辑放在每个Controller
函数中,我假设DataTransformer
是正确的解(?)。 FormType是否是此类验证的正确级别?
答案 0 :(得分:3)
我认为DataTransformer不是您想要的。 DataTransformer可以为表单中的一个字段改变提交的内容,但无法访问其周围的任何字段。这可能是你想要用LifeCycleCallbacks做的事情。
以下是使用LifeCycleCallbacks的示例:
http://symfony.com/doc/current/cookbook/doctrine/file_uploads.html
它不反映你想做什么,但它会教你LifeCycleCallbacks是什么以及如何使用它们。