2015-12-14 38 views
0

以下是這種情況:某些表單處理操作是通過請求POST參數(即實體ID)從樹枝模板調用的。提交表單並再次調用操作以修改底層對象的值後,Request對象中的實體ID參數消失(由Symfony Form請求對象取代)。Symfony2 - 提交表單時如何保留請求參數?

下面是問題:在兩次調用窗體之間保留這個請求參數的最佳做法是什麼?

這是一個簡單的代碼示例:

public function editEntityAction(Request $request, $type) 
{ 

    $objId = $request->request->get('entityId'); 

    $updateObj = null; 
    $form = null; 

    $dbMen = $dbMen->getRepository('BakaMainBundle:Brand'); 
    $updateObj = $dbMen->find($objId); 
    $form = $this->createForm(new AddBrand(), $updateObj); 

    if ($updateObj == null && $form == null) 
     $this->redirectToRoute('baka_main_main_index'); 

    $form->handleRequest($request); 

    if ($form->isValid() && $form->isSubmitted()) 
    { 
     $menager = $this->getDoctrine()->getManager(); 
     $menager->flush(); 
    } 

    return $this->render('@BakaMain/Specs/EditEntity.html.twig', 
     array('form' => ($form->createView())); 
} 

回答

1

有三種可能的方式來保存值

  1. 會議
  2. 餅乾
  3. 隱藏表單域

只有在應用程序中使用全局配置變量時,纔可以將其存儲在parameters.yml中

有用於顯示諸如「成功提交表單」或「表單提交失敗」之類的Flash消息的快閃袋對於下一個請求有效一次

我已經給你所有的選擇,你可以選擇相應的,如果需要,你可以問我額外的細節