2016-12-11 26 views
0

这是我的代码。我想在表单中设置数据库的默认值。我想在我用这种方法创建的表单中设置值。Symfony和Doctrine - 在控制器方法中显示数据库中的数据

public function updateBlogAction(Request $request, $id) 
    { 
     $em = $this->getDoctrine()->getManager(); 
     $data = $em->getRepository('AppBundle:Blog\Post')->find($id); 

     $blogs = new Post(); 

     $form = $this->createFormBuilder($blogs) 
       ->add('title', TextType::class, array('attr'=>array('class'=>'form-control','placeholder'=>'Blog title'))) 
       ->add('description', TextareaType::class, array('attr'=>array('class'=>'form-control','placeholder'=>'Blog description'))) 
       ->add('submit',SubmitType::class, array('label'=>'Add Blog', 'attr'=> array('class'=>'btn btn-primary pull-right'))) 
       ->getForm(); 

     $form->handleRequest($request); 

     if($form->isSubmitted() && $form->isValid()){ 
      $data->setTitle($blogs); 
      $em->flush(); 

      return $this->redirectToRoute('blog'); 
     } 

     return $this->render('blog/update_blog.html.twig', array(
      'form' => $form->createView() 
     )); 
    } 
+0

你应该简单的设置默认值作为例如'$ blogs'对象 – Matteo

+0

'$ blogs->的setTitle($数据 - >的getTitle()); ' – Matteo

+1

感谢您的帮助。它运作良好。 – Shahadat

回答

0

它是那么容易,因为

$em = $this->getDoctrine()->getManager(); 
$blogs= $em->getRepository('AppBundle:Blog\Post')->find($id); 

$form = $this->createFormBuilder($blogs) 
/* ... */ 
相关问题