У меня есть несколько встроенных форм.Сравнивать данные после запроса формы, встроенные формы
Моя первая форма содержит коллекцию статей:
$builder->add('purchaseOrders', 'collection', array('type' => new AmountOrderArticleType()));
И эта форма содержит коллекцию подстатей:
$builder->add('articleOrderReferences', 'collection', array('type' => new AmountOrderSubArticleType()));
И в этом подстатей я хочу, чтобы изменить количество:
$builder->add('amount');
Моя цель - проверить, изменилась ли сумма в форме и установить измененный вал ue в моей сущности от 0 до 1 для этой суммы.
Каков наилучший способ сделать это?
Edit: Я использую 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.
Так как я могу получить доступ к подтвержденному полю и установить его на ложь?
Посмотрите [этот ответ] (http://stackoverflow.com/questions/10800178/how-to-check-if-entity-is-changed-in-doctrine-2) пожалуйста .. Вы можете идентифицировать измененные объекты, используя прослушиватель/подписчик доктрины. – nifr
спасибо за вашу ссылку, я сейчас редактировал свой вопрос, как я могу получить доступ к подтвержденному полю, которое находится в одном и том же объекте, но не используется в форме – ChrisS