【问题标题】:Rendering form via Ajax - Symfony 5通过 Ajax 渲染表单 - Symfony 5
【发布时间】:2022-01-05 02:58:48
【问题描述】:

直到 Symfony 4,我曾经通过 Ajax 加载表单,返回如下内容:

$result = $this->renderView('my/template.html.twig',[
    'form' => $form->createView()
]);
return new Response($result);

自 Symfony 5 以来,这不再有效。我使用$this->renderForm()、$this->render() 和'form'=>$form 尝试了所有可能的组合,但没有成功。有什么诀窍?

【问题讨论】:

    标签: ajax forms symfony symfony5


    【解决方案1】:

    试试

    return new JsonResponse(['view' => $this->render('path/to_view.html.twig')->getContent()]);
    

    它将向您的 Ajax 调用返回一个 json 响应。您可以访问包含页面渲染 [$this->render()->getContent] 的 html 内容的“查看”键(根据需要命名)。这是我在 Symfony 5.4 项目中使用的方式。

    【讨论】:

      【解决方案2】:

      您好,您可以这样渲染表单

      public function __invoke()
      {
          return $this->render('my/template.html.twig', [
              'form' => $form->createView()
          ]);
      }
      

      注意:

      render() -> 将返回响应对象

      renderView() -> 将返回字符串(渲染的树枝模板)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-08-04
        • 2015-05-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-11-29
        • 1970-01-01
        • 2021-03-04
        相关资源
        最近更新 更多