1

複数の埋め込みフォームがあります。

私の最初のフォームは記事のコレクションを保持しています:

$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 に設定するにはどうすればよいですか?

4

1 に答える 1