比较表单请求后的数据,嵌入表单



我有一个多个嵌入式Form.

我的第一张表格里有一系列文章:

$builder->add('purchaseOrders', 'collection', array('type' => new AmountOrderArticleType()));

这个表格包含一组亚粒子:

$builder->add('articleOrderReferences', 'collection', array('type' => new AmountOrderSubArticleType()));

在这个子条目中,我想编辑数量:

$builder->add('amount');

我的目标是检查表单中的金额是否发生了变化,并在我的实体中为此金额设置一个从0到1的变化值。

最好的方法是什么?

编辑:我现在使用预更新事件侦听器:

  public function preUpdate(LifecycleEventArgs $eventArgs)
{   
    $entity = $eventArgs->getEntity();
    $entityManager = $eventArgs->getEntityManager();
    if ($entity instanceof AOSupplierReference) {
            if ($eventArgs->hasChangedField('amount') && $eventArgs->getNewValue('amount') > 0) {
//              $eventArgs->setConfirmed(0);
                $eventArgs->setNewValue('confirmed', 0);
            }
        }
    }

但我知道我收到了这个错误消息:Field "confirmed" is not a valid field of the entity "AcmeAppBundleEntityAOSupplierReference" in PreUpdateEventArgs.那么,我如何访问已确认的字段并将其设置为false呢?

好吧,用Eventlistener修复了它,感谢nifr的提示。

public function preUpdate(LifecycleEventArgs $eventArgs)
{   
    $entity = $eventArgs->getEntity();
    $em = $eventArgs->getEntityManager();
    if ($entity instanceof AOSupplierReference) {
        if ($eventArgs->hasChangedField('amount')) {
            $entity->setConfirmed(false);
        }
    }
}

相关内容

  • 没有找到相关文章

最新更新