I have read and re-read everywhere I could, and I am unable to find the proper answer to my problem. Here is the problem. I have 2 entities. Equipment, EquipmentPart respectively.
Equipment:
/**
* @ORM\OneToMany(
* targetEntity="EquipmentPart",
* mappedBy="equipment",
* orphanRemoval=true,
* cascade={"persist"})
*/
private $parts;
public function __construct()
{
$this->parts = new ArrayCollection();
}
... getters and setters...
...
public function getParts()
{
return $this->parts;
}
public function setParts($parts)
{
$this->parts = $parts;
}
EquipmentPart:
/**
* @ORM\ManyToOne(targetEntity="Equipment", inversedBy="parts")
* @ORM\JoinColumn(nullable=false)
*/
private $equipment;
...getters and setters
...
public function getEquipment()
{
return $this->equipment;
}
public function setEquipment(Equipment $equipment)
{
$this->equipment = $equipment;
}
Equipment Form:
$builder->add("parts", CollectionType::class, [
"label" => false,
"entry_type" => EquipmentPartForm::class,
"allow_delete" => true,
"allow_add" => true,
"by_reference" => false
]);
The equipmentPart form has just partnumber and name as fields. I keep getting a constraint error due the FK is null.
My controller is pretty simple:
public function addEquipment(Request $request)
{
$equipment = new Equipment();
$form = $this->createForm(EquipmentForm::class, $equipment);
$form->handleRequest($request);
if($form->isSubmitted() && $form->isValid()){
$em = $this->getDoctrine()->getManager();
$em->persist($form->getData());
$em->flush();
...
...
What am I doing wrong?