나는 미친 문제가 있습니다. 이해가 안됩니다. 우려Symfony2 양식의 엔티티 저장이 작동하지 않습니다.
내 코드는 다음과 같습니다 내가 엔티티 두 가지 형태를 inludes과 렌더링 양식을 만들
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();
}
. 벌금이 부과됩니다. 그러나이 엔티티의 데이터를 store (storeAppendDataDFu1)에 저장하고이 엔티티에서 단지 을 원할 때 entity1은 이전에 시각화 된 모든 값을 잃게됩니다. 즉,이 entity1이 표시하는 필드는 데이터베이스에 NULL 값과 함께 영구 저장됩니다.
엔티티 1()에 대해 하나의 메모리 함수 만 프로그래밍 된 경우에도 엔티티 1이 잘못된 값을 지속적으로 저장할 수 있습니까?
제가 가정 할 때마다 Submit을 누를 때마다 entity1의 필드가 NULL로 설정되기 때문에 폼의 집합과 관련이 있다고 가정합니다.
누군가가이 문제를 알고 있기를 바랍니다. :) 정말 해결책을 찾을 수 없습니다. 엔티티와 엔티티 1은 연결되어 있습니다. 왜냐하면 엔티티의 foreig 키가 엔티티 1의 기본 키이기 때문에 oneToOne과 일치하기 때문입니다 ...
나는 mappingBy null도 찾았습니까? 그게 무슨 뜻이야? 이유가 될 수 있을까요? 피드백에 대한
oneToOne:
fu1KfPatientid:
targetEntity: DataAPatient
cascade: { }
fetch: LAZY
mappedBy: null
inversedBy: dFu1
joinColumns:
_FU1_kf_PatientID:
referencedColumnName: __P_kp_PatientID
orphanRemoval: false
덕분에 ... 당신이 두 엔티티를 유지하는 적절한 매핑 정보를 추가하는 것이 더 information..Thaanks
흠. 내가 두 개의 다른 엔티티로 그것을 할 계획이 된 이유는 첫 번째 엔티티가 변경되어서는 안되기 때문입니다. 그러나 적절한 정보를 정의해야하는 방식을 따르고 싶을 때가 있습니다. ist는 두 가지 다른 형식으로 작동합니까? 왜냐하면 이제는 모든 엔티티에 대해 자신 만의 형식을 가지고 있기 때문입니다. – helmi
이미 매핑 정보를 가지고 있기 때문에 첫 번째 엔티티 또는 다른 엔티티에서 아무것도 변경하면 안됩니다. 필수 엔터티 형식 만 변경하고 필드의 EntityTwoFormType을 수정하면 추가 코드없이 렌더링되고 유지됩니다. 엔티티를 보여 주시면 자기 자신을 더 잘 설명 할 수 있습니까? –
의견을 보내 주셔서 감사합니다. 어떤 파일에 엔티티 클래스 또는 엔티티 양식이 필요합니까? 아니면 둘다? – helmi