I have a onPreSubmit in my Symfony2 FormType.
public function onPreSubmit(FormEvent $event)
{
$data = $event->getData();
// Avoid sending empty RegisterProduct
foreach ($data['registerProducts'] as $key => $registerProduct) {
if (empty($registerProduct['quantity'])) {
unset($data['registerProducts'][ $key ]);
}
}
$event->setData($data);
}
The purpose is to remove an array value if a certain fiels in this one is empty (which works)
But when I set the data I have this error:
An exception occurred while executing 'INSERT INTO register_product .....
Integrity constraint violation: 1048 Column 'register_id' cannot be null
I don't understand why.
EDIT: I tried with onPostSubmit, but still have the same error
public function onPostSubmit(FormEvent $event)
{
/** @var Register $register */
$register = $event->getForm()->getData();
foreach ($register->getRegisterProducts() as $registerProduct) {
if ($registerProduct->getQuantity() < 1) {
$register->removeRegisterProduct($registerProduct);
}
}
}