2011-10-12 3 views
2

저는이 프로젝트에서 사이트가 사용하는 데이터베이스에 데이터를 추가하는 데 필요한 많은 양식이 있습니다. 분명히, 사용자가 데이터를 추가하면이 데이터를 편집 (또는 삭제) 할 수 있어야합니다.데이터베이스의 데이터를 Symfony2의 폼으로 표시합니다.

나는 책을 살펴본 후 양식을 사용하여 데이터를 추가하는 방법에 대해 이야기합니다. 그러나 양식을 사용하여 데이터를 편집하는 방법은 언급하지 않습니다.

어떻게 달성 할 수 있습니까?

건배

답변

3

당신은 다음과 같이해야합니다, 교리없이 편집 작업을 작성하는 아주 쉽게, 원하는 경우 새로운 "요소"인스턴스를 만드는 대신 엔티티 관리자에서 가져 오는 것이므로 폼에 첨부하기 전에 요소에 임의의 값을 설정할 수도 있습니다.

도움이 되었기를 바랍니다.

+0

많은 도움이되었습니다. 그러나 레코드를 편집하지는 않습니다. 대신 레코드를 검색 한 다음 제출 한 후 새 레코드로 추가합니다. 그 원인은 무엇입니까? – mickburkejnr

+0

마지막 코멘트를 무시하십시오. 나는 코드를 콕. 많은 감사합니다 !!! – mickburkejnr

1

편집/업데이트 사용자를위한 코드를 생성 generate:doctrine:crud 작업을 사용합니다. newAction과 editAction은 매우 유사하다는 것을 알 수 있습니다.

public function editAction($id) { 
$em = $this->getDoctrine()->getEntityManager(); 
$repository = $em->getRepository('YourBundle:YourEntity'); 
$element = $repository->find($id); 
if (false !== is_null($element)) { 
    throw $this->createNotFoundException('Couldn\'t find element ' . $id . '!'); 
} 
$form = $this->createForm(new YourFormType(), $element); 
$request = $this->getRequest(); 
if ($request->getMethod() == 'POST') { 
    $form->bindRequest($request); 
    if ($form->isValid()) { 
     $em->persist($element); 
     $em->flush(); 
     $this->get('session')->setFlash('system-message', 'Element Updated!'); 
     return $this->redirect($this->generateUrl('Your_route')); 
    } 
} 
return $this->render('YourBundle:YourView:your_template.html.twig', array('element' => $element, 'form' => $form->createView()));} 

새로운 행동과 편집 행동의 유일한 다른 점은 다음과 같습니다

+0

정확히 무엇이 수행됩니까? 필자는 잘 작동하는 데이터베이스에 데이터를 유지하는 코드를 작성했습니다. 이 명령이이 코드를 덮어 씁니까? – mickburkejnr

+0

좋은 질문 ... 잘 모르겠습니다. 놀라움을 피하기 위해 버전 컨트롤을 사용하십시오. – greg0ire

+0

왜이 명령은 누르지 않아야하는 커다란 빨간 버튼처럼 느껴지나요? 내가 그것을 시도 할 때 나는 당신에게 돌아갈 것이다. – mickburkejnr

관련 문제