树枝模板中的editAction函数

时间:2014-01-28 13:37:16

标签: symfony twig

我是symfon2的新手,在编辑功能的控制器页面的某些部分中。当我在view.html.twig中点击编辑时,我需要使用所有信息渲染到我的创建页面

我的Controller.php,

public function editAction($id)
{
    $profile = $this->getDoctrine()
                    ->getRepository('TcprofileBundle:TcProfiles')
                    ->find($id);

    $profile_form = $this->createForm(new ProfileType(), $profile);
    $request = $this->getRequest();
    $profile_form->bindRequest($request);

    if ($editForm->isValid()) {
        $em->persist($entity);
        $em->flush();

        return $this->redirect($this->generateUrl('tcprofile_create', array('id' => $id)));
     }
}

我的view.twig模板

  <a href="#!{{ path('tcprofile_edit',{ 'id': profile.getId}) }}"> Edit Profile </a>

我的路由,

 tcprofile_edit:
     pattern: /edit/{id}
     defaults: { _controller: "TcprofileBundle:Default:edit"}  `   

请帮助我更好的解决方案,提前致谢

1 个答案:

答案 0 :(得分:0)

您可以使用实体数据创建表单。只需将实体传递给createForm函数。表单呈现时,它将包含实体数据;)

public function editAction($id)
{
    $profile = $this->getDoctrine()
                    ->getRepository('TcprofileBundle:TcProfiles')
                    ->find($id);

    $profile_form = $this->createForm(new ProfileType(), $profile);
    $request = $this->getRequest();
    $profile_form->bindRequest($request);

    if ($editForm->isValid()) {
        $em->persist($entity);
        $em->flush();

       return $this->render('bundle:edit:editForm.html.twig' , $profile_form);
     }
}

您将使用默认数据加载表单。