如何同时使用两个实体
How to use two entity at the same time
我有两个实体 calcPara
calcSet
.
我想用这个表格做一个表格。
我可以像这样制作每个表格
$calcPara = new CalcPara();
$form = $this->createFormBuilder($calcPara)->add('save', SubmitType::class)
->getForm();
$calcSet = new CalcSet();
$form = $this->createFormBuilder($calcSet)->add('save', SubmitType::class)
->getForm();
然而这形成了两种不同的形式。
但我想从两个实体制作一个表格。
我怎样才能做到??
在 Symfony 中,表单只有一个对象作为支持它的数据,因此您不能直接分配两个实体来扮演该角色。无需完全手动构建表单,您可以做一些准备工作,将两个实体组合成您定义的新类型,该类型包含来自两个实体的重要成员。但是,您必须负责将两个实体转换为新对象,并在提交表单时再次转换回来。
例如
class CalcSetAndPara {
public function setSetValue($setValue) {}
public function getSetValue() {}
public function setParaValue($paraValue) {}
public function getParaValue(){}
}
并使用它:
$combinedObject = new CalcSetAndPara();
$combinedObject->setSetValue($calcSet->getValue());
$combinedObject->setParaValue($calcPara->getValue());
$form = $this->createFormBuilder($combinedObject)->add('save', SubmitType::class)
->getForm();
//Then handle and do whatever you need to do with the results, extracting and persisting the two entities
我有两个实体 calcPara
calcSet
.
我想用这个表格做一个表格。
我可以像这样制作每个表格
$calcPara = new CalcPara();
$form = $this->createFormBuilder($calcPara)->add('save', SubmitType::class)
->getForm();
$calcSet = new CalcSet();
$form = $this->createFormBuilder($calcSet)->add('save', SubmitType::class)
->getForm();
然而这形成了两种不同的形式。
但我想从两个实体制作一个表格。
我怎样才能做到??
在 Symfony 中,表单只有一个对象作为支持它的数据,因此您不能直接分配两个实体来扮演该角色。无需完全手动构建表单,您可以做一些准备工作,将两个实体组合成您定义的新类型,该类型包含来自两个实体的重要成员。但是,您必须负责将两个实体转换为新对象,并在提交表单时再次转换回来。
例如
class CalcSetAndPara {
public function setSetValue($setValue) {}
public function getSetValue() {}
public function setParaValue($paraValue) {}
public function getParaValue(){}
}
并使用它:
$combinedObject = new CalcSetAndPara();
$combinedObject->setSetValue($calcSet->getValue());
$combinedObject->setParaValue($calcPara->getValue());
$form = $this->createFormBuilder($combinedObject)->add('save', SubmitType::class)
->getForm();
//Then handle and do whatever you need to do with the results, extracting and persisting the two entities