【发布时间】:2018-01-18 23:02:09
【问题描述】:
我已经阅读了一遍又一遍,但我无法找到问题的正确答案。这是问题所在。我有 2 个实体。分别是设备、设备部分。
设备:
/**
* @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;
}
设备部分:
/**
* @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;
}
设备形式:
$builder->add("parts", CollectionType::class, [
"label" => false,
"entry_type" => EquipmentPartForm::class,
"allow_delete" => true,
"allow_add" => true,
"by_reference" => false
]);
设备部件表单只有部件号和名称作为字段。由于 FK 为空,我不断收到约束错误。
我的控制器很简单:
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();
...
...
我做错了什么?
【问题讨论】:
标签: symfony symfony-3.2