从 Symfony2 表单存储实体不起作用
Storing entities from a Symfony2 Form doesn't work
我有一个疯狂的问题,我不明白。
我的代码是这样的:
public function appendAction(Request $request, $pKpPatientid)
{
if (!$this->isAdmin()) {
throw new AccessDeniedException();
}
$entity = new DataDFu1();
$entity1 = $this->getDoctrine()
->getRepository('DataLiveBundle:DataAPatient')
->find($pKpPatientid);
$appendForm = $this->createAppendForm($pKpPatientid,$entity, $entity1);
$appendForm->handleRequest($request);
// if ($appendForm->isValid()) {
if($appendForm->get('submit')->isClicked()){//Save
//return $this->redirect($this->generateUrl('dataapatient_sendMessage', array("pKpPatientid" => $pKpPatientid)));
$entity->setFu1KfPatientid($entity1);
$this->storeAppendDataDFu1($entity);
// }
}
return $this->render('DataLiveBundle:DataDFu1:form.html.twig', array(
// 'entity' => $entity,
'form' => $appendForm->createView(),
'isNew'=> true,
));
}
/**
* The function createAppendForm
* Creates a form with the Information from a DataAPatient.
* @param DataAPatient $pKpPatientid The primary key
* @return \Symfony\Component\Form\Form
*/
private function createAppendForm($pKpPatientid, $entity, $entity1)
{
$form = $this->createForm($this->get('data_livebundle.form.dataapatienttype'), $entity1, array(
//'action' => $this->generateUrl('dataHome'),
'method' => 'POST'
));
$form->add('submit', 'submit', array('label' => 'Create Fu1'));
return $form->add('dFu1', new DataDFu1Type(), array('data'=>$entity));
}
/**
* The function storeEditedDataDFu1
* Persists changes made to an existing DataDFu1 entity to the database
* @param DataDFu1 entity
* @return DataAPatient $pKpPatientid The primary key
*/
public function storeAppendDataDFu1($entity)
{
$em = $this->getDoctrine()->getManager();
$session = $this->getRequest()->getSession();
if (!$entity) {
throw $this->createNotFoundException('Unable to find DataDFu1 entity.');
}
$em->persist($entity);
$em->flush();
$session->getFlashBag()->add(
'notice',
'Your changes to the DataDFu1 of ID: "'."xyz". '" was saved!'
);
// return $entity->getPKpPatientid();
}
我创建了一个表单,其中包含两个带有实体的表单并呈现它。它工作罚款。但是在这一刻,当想要存储(storeAppendDataDFu1)来自实体的数据并且只是来自这个实体时,实体1丢失了之前在表单中可视化的所有值(只是可视化的)。这意味着此 entity1 显示的字段在数据库中以 NULL 值持久存储。
即使只为entity1编写了一个记忆函数,entity1怎么能持久存储错误的值()???
我的推测是和form的星座有关,因为每次我点击Submit,entity1的字段都会被设置为NULL。
我希望有人知道这个问题:),我真的找不到解决办法。
*实体和实体1只是连接在一起,因为来自实体的外键是实体1的主键,它是一对一匹配...
我也找到了 mappingBy null?那是什么意思?会不会是这个原因?
oneToOne:
fu1KfPatientid:
targetEntity: DataAPatient
cascade: { }
fetch: LAZY
mappedBy: null
inversedBy: dFu1
joinColumns:
_FU1_kf_PatientID:
referencedColumnName: __P_kp_PatientID
orphanRemoval: false
感谢您的反馈...如果您需要更多信息请告诉我...谢谢
如果实体是相关的,添加适当的映射信息来保存两个实体不是更好吗?
Entity 1
/**
*@ORM\OneToOne(targetEntity="Entity2", cascade={"persist"})
*
*/
$entity_two_reference;
在表单中,这将是一个 Entity2Type,应该照常呈现
当您使用 flush() 时,它应该可以正常工作。
现在我找到问题了!问题是我正在使用
Data-Toggle
{#<div class="container">
<div class="row">
<ul class="nav nav-tabs pull-left">
<li class="active"><a href="#patientInfo" data-toggle="tab">Patient info</a></li>
<li ><a href="#partI" data-toggle="tab">Part I</a></li>
<li ><a href="#partII" data-toggle="tab">Part II</a></li>
<li ><a href="#partIII" data-toggle="tab">Part III</a></li>
</ul>
{#div class="clearfix">tmp. disable#}</div> #}
创建寄存器布局。我认为这种布局不适用于 Simfony2 Forms。有人体验过哪种寄存器布局适用于 Symfony2 Forms 吗?
我有一个疯狂的问题,我不明白。
我的代码是这样的:
public function appendAction(Request $request, $pKpPatientid)
{
if (!$this->isAdmin()) {
throw new AccessDeniedException();
}
$entity = new DataDFu1();
$entity1 = $this->getDoctrine()
->getRepository('DataLiveBundle:DataAPatient')
->find($pKpPatientid);
$appendForm = $this->createAppendForm($pKpPatientid,$entity, $entity1);
$appendForm->handleRequest($request);
// if ($appendForm->isValid()) {
if($appendForm->get('submit')->isClicked()){//Save
//return $this->redirect($this->generateUrl('dataapatient_sendMessage', array("pKpPatientid" => $pKpPatientid)));
$entity->setFu1KfPatientid($entity1);
$this->storeAppendDataDFu1($entity);
// }
}
return $this->render('DataLiveBundle:DataDFu1:form.html.twig', array(
// 'entity' => $entity,
'form' => $appendForm->createView(),
'isNew'=> true,
));
}
/**
* The function createAppendForm
* Creates a form with the Information from a DataAPatient.
* @param DataAPatient $pKpPatientid The primary key
* @return \Symfony\Component\Form\Form
*/
private function createAppendForm($pKpPatientid, $entity, $entity1)
{
$form = $this->createForm($this->get('data_livebundle.form.dataapatienttype'), $entity1, array(
//'action' => $this->generateUrl('dataHome'),
'method' => 'POST'
));
$form->add('submit', 'submit', array('label' => 'Create Fu1'));
return $form->add('dFu1', new DataDFu1Type(), array('data'=>$entity));
}
/**
* The function storeEditedDataDFu1
* Persists changes made to an existing DataDFu1 entity to the database
* @param DataDFu1 entity
* @return DataAPatient $pKpPatientid The primary key
*/
public function storeAppendDataDFu1($entity)
{
$em = $this->getDoctrine()->getManager();
$session = $this->getRequest()->getSession();
if (!$entity) {
throw $this->createNotFoundException('Unable to find DataDFu1 entity.');
}
$em->persist($entity);
$em->flush();
$session->getFlashBag()->add(
'notice',
'Your changes to the DataDFu1 of ID: "'."xyz". '" was saved!'
);
// return $entity->getPKpPatientid();
}
我创建了一个表单,其中包含两个带有实体的表单并呈现它。它工作罚款。但是在这一刻,当想要存储(storeAppendDataDFu1)来自实体的数据并且只是来自这个实体时,实体1丢失了之前在表单中可视化的所有值(只是可视化的)。这意味着此 entity1 显示的字段在数据库中以 NULL 值持久存储。
即使只为entity1编写了一个记忆函数,entity1怎么能持久存储错误的值()???
我的推测是和form的星座有关,因为每次我点击Submit,entity1的字段都会被设置为NULL。
我希望有人知道这个问题:),我真的找不到解决办法。 *实体和实体1只是连接在一起,因为来自实体的外键是实体1的主键,它是一对一匹配...
我也找到了 mappingBy null?那是什么意思?会不会是这个原因?
oneToOne:
fu1KfPatientid:
targetEntity: DataAPatient
cascade: { }
fetch: LAZY
mappedBy: null
inversedBy: dFu1
joinColumns:
_FU1_kf_PatientID:
referencedColumnName: __P_kp_PatientID
orphanRemoval: false
感谢您的反馈...如果您需要更多信息请告诉我...谢谢
如果实体是相关的,添加适当的映射信息来保存两个实体不是更好吗?
Entity 1
/**
*@ORM\OneToOne(targetEntity="Entity2", cascade={"persist"})
*
*/
$entity_two_reference;
在表单中,这将是一个 Entity2Type,应该照常呈现
当您使用 flush() 时,它应该可以正常工作。
现在我找到问题了!问题是我正在使用 Data-Toggle
{#<div class="container">
<div class="row">
<ul class="nav nav-tabs pull-left">
<li class="active"><a href="#patientInfo" data-toggle="tab">Patient info</a></li>
<li ><a href="#partI" data-toggle="tab">Part I</a></li>
<li ><a href="#partII" data-toggle="tab">Part II</a></li>
<li ><a href="#partIII" data-toggle="tab">Part III</a></li>
</ul>
{#div class="clearfix">tmp. disable#}</div> #}
创建寄存器布局。我认为这种布局不适用于 Simfony2 Forms。有人体验过哪种寄存器布局适用于 Symfony2 Forms 吗?