Symfony2无效表单仍然在flush上保存实体

时间:2015-11-11 17:32:38

标签: symfony doctrine-orm symfony-forms

我目前有一个表单并且在保存时我总是进行API调用以针对外部源验证表单信息(例如:公司是增值税支付公司等)。我还想在数据库中存储我从外部API获得的响应,我在表单上有一个帖子提交订阅者。

在订阅者中,我调用API并在值不匹配的表单上设置错误。这就是我调用服务来处理所有业务逻辑的地方,我在那里

$em->persist($apiResponse);
$em->flush();

保持API响应。

这最终会保存附加到数据库中表单(公司)的实体值,即使这些值实际上是无效的,并且用户也会返回到表单页面。

请注意这是在编辑时发生的,我理解为什么会发生这种情况,因为该实体是由Doctrine管理的。

我也试过只刷新我感兴趣的实体:

$em->persist($apiResponse);
$em->flush($apiResponse);

这似乎有效,但我读到这可能有意想不到的行为。

因此,我的问题是:有什么解决方案?

谢谢,抱歉缺少代码示例!

0 个答案:

没有答案