我有2个实体,Product和Product_Types。
这是他们之间的关系:
manyToOne:
product:
targetEntity: Product
joinColumn:
name: product_id
referencedColumnName: id
当我添加新产品时,我希望能够使用相同的表单向此产品添加类型。
->add('productColor', 'collection', array("type" => new ProductColorType(), "allow_add" => true, 'prototype' => true))
这是我嵌入表格的方式。
为ProductType和ProductTypesType设置'data_class',当我添加一个带有类型的新产品时,一切都很好,除了一件事,symfony / doctrine没有设置'product_id'列,所以会有我的产品与其类型之间没有任何关系。
答案 0 :(得分:5)
您需要手动交叉链接您的实体。 Symfony和Doctrine都不会为你做这件事。例如,您可以在add ...()方法中执行此操作:
public function getProductColors()
{
return $this->productColors;
}
public function addProductColor(ProductColor $color)
{
$this->productColors->add($color);
$color->setProduct($this);
}
然后必须满足三个要求才能实现:
false
如果你做了这一切,你应该没事。
答案 1 :(得分:0)
尝试在实体经理刷新之前保持productColors。