我有一个多个嵌入式表单。
我的第一个表格包含一系列文章:
$builder->add('purchaseOrders', 'collection', array('type' => new AmountOrderArticleType()));
这个表单包含一个子条目的集合:
$builder->add('articleOrderReferences', 'collection', array('type' => new AmountOrderSubArticleType()));
在这个子文章中,我想编辑金额:
$builder->add('amount');
我的目标是检查表单中的金额是否已更改,并在我的实体中为此金额设置从 0 到 1 的更改值。
最好的方法是什么?
编辑:我现在使用 preUpdate Eventlistener:
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 "Acme\AppBundle\Entity\AOSupplierReference" in PreUpdateEventArgs.
那么我怎样才能访问已确认的字段并将其设置为 false?