我在symfony中渲染表单时遇到问题。
我使用商业模板(SmartAdmin),此模板使用AJAX捕获所有加载的网址,在网址提供时保留菜单和配置#'
通常我可以正常工作,但在此控制器中,验证失败时会出现问题
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"没有"#"并丢失了所有菜单和配置。
有什么建议吗?
先谢谢,对不起我的英文
图片工作好了:
问题图片:
答案 0 :(得分:0)
我仍然没有完全理解你想要实现的目标的感觉,但我认为你希望重定向始终发生。在这种情况下,您应该稍微重构一下代码:
$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);
然后,当然,带有模板渲染的最后一部分将永远不会被激活。