2014-08-29 76 views
1

我在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

回答

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); 

然後,當然,模板渲染的最後一部分將永遠不會被執行。

+0

在這種情況下,如果表單無效,不顯示錶格和錯誤 – NeWsPi 2014-08-30 12:08:09

相關問題