In the productForm class create the relation with the attribute form.
public function configure() { /* Create embedForm with an empty attribute */ $new_attribute = new ProductAttribute(); $new_attribute->setProduct($this->object); $this->embedForm('new_attribute', new ProductAttributeForm($new_attribute)); $this->embedRelation('Attributes', new ProductAttributeForm()); }
...and we rewrite the saveEmbeddedForms methods
public function saveEmbeddedForms($con = null, $forms = null) { try { $new_attribute_form = $this->getEmbeddedForm('new_attribute'); $values = $this->getValue('new_attribute'); /* Validations Rules to save the relation */ if (empty($values['attribute_id'])) { unset($this['new_attribute']); } } catch (InvalidArgumentException $e) { error_log($e->getTraceAsString()); } return parent::saveEmbeddedForms($con, $forms); }