如何在Symfony2中更改返回渲染方向

问题描述:

我在symfony中渲染表单时遇到问题。如何在Symfony2中更改返回渲染方向

我使用罗科梅模板(SmartAdmin)和该模板使用AJAX来捕获加载的所有网址,保持菜单和配置url时提供“#”

通常情况下,我可以工作正常,但在这个控制器我有一个问题,当验证失败

public function createAction(Request $request) 
    { 
     $entity = new Clientes(); 
     $form = $this->createCreateForm($entity); 
     $form->handleRequest($request); 

     if ($form->isValid()) { 
      $em = $this->getDoctrine()->getManager(); 
      $em->persist($entity); 
      $em->flush(); 

      $url=$this->generateUrl('ec_main_cliente', array('idcliente' => $entity->getId())); 
      $url = str_replace('cliente', '#cliente', $url); 

      return $this->redirect($url); 
     } 



     return $this->render('ECMainBundle:Clientes:nuevo_cliente.html.twig', array(
       'entity' => $entity, 
       'form' => $form->createView(), 
      )); 
    } 

当表格无效,负载“ECMainBundle:Clientes:nuevo_cliente.html.twig”没有“#”,失去了所有的菜单和配置。

有什么建议吗?

由于提前和我的英语水平

图像工作好遗憾: enter image description here

问题的图片: Image of the problem

+0

您能否澄清问题所在?我认为它在代码块下面的段落中,但是我很难理解你期望发生的事情,而是发生了什么。 – lxg 2014-08-29 20:51:22

+0

嗨,问题是:第一次表单显示,工作正确(主题的菜单和配置工作正常)。如果表格是有效的,在重定向我可以替换客户,为#cliente,并工作好(主题工作正确感谢'#'),但是,当无效时,我失去了所有...我看不到菜单和配置,我没有任何想法在渲染中添加'#'。 (感谢您的回复) – NeWsPi 2014-08-29 20:54:24

+0

您是否在浏览器或日志文件中收到错误消息? – lxg 2014-08-29 20:59:34

我还没有感觉完全明白你我正在努力实现,但我认为你希望重定向始终发生。在这种情况下,你应该重构你的代码:

$id = 0; 

if ($form->isValid()) { 
    $em = $this->getDoctrine()->getManager(); 
    $em->persist($entity); 
    $em->flush(); 
    $id = $entity->getId(); 
} 

$url = $this->generateUrl('ec_main_cliente', array('idcliente' => $id)); 
$url = str_replace('cliente', '#cliente', $url); 

return $this->redirect($url); 

然后,当然,模板渲染的最后一部分将永远不会被执行。

+0

在这种情况下,如果表单无效,不显示表格和错误 – NeWsPi 2014-08-30 12:08:09