Если вы хотите, довольно легко написать ваше действие редактирования без доктрины, вы должны сделать что-то вроде этого:
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() ) );}
Единственное отличие действия edit с new Действие заключается в том, что вместо создания нового экземпляра "element" вы получаете его от менеджера сущностей, вы можете даже установить любые произвольные значения для вашего элемента, прежде чем присоединять его к форме.
Надеюсь, это поможет!