Symfony2 - 提交表单时如何保留请求参数?

时间:2015-12-14 23:51:53

标签: php forms symfony request

以下是这种情况:从带有请求POST参数的twig模板(即实体ID)调用某些表单处理操作。提交表单并再次调用操作以修改底层对象的值后,我的Request对象中的实体ID参数消失了(它被Symfony Form请求对象替换)。

以下是问题:在两次表单调用之间保留此请求参数的最佳做法是什么?

以下是简单的代码示例:

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 个答案:

答案 0 :(得分:1)

有三种可能的方法来保存值

  1. 会话
  2. cookies
  3. 隐藏表单字段
  4. 只有在整个应用程序中使用的全局配置变量

    时,才可以将它存储在parameters.yml中

    有闪光袋用于显示闪光信息,例如“提交成功表格”或“表格提交失败”,这对于下一次请求只有一次有效

    我已经为您提供了所有选项,您可以相应地选择,如果需要,您可以向我询问其他详细信息