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);
}