通过 Ajax - Symfony 5 渲染表单
Rendering form via Ajax - Symfony 5
在 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
尝试了所有可能的组合,但没有成功。有什么诀窍?
您好,您可以像这样渲染表单
public function __invoke()
{
return $this->render('my/template.html.twig', [
'form' => $form->createView()
]);
}
注:
render()
-> 将return响应对象
renderView()
-> 将 return 字符串(渲染的树枝模板)
试试
return new JsonResponse(['view' => $this->render('path/to_view.html.twig')->getContent()]);
它将 return 对您的 Ajax 呼叫做出 json 响应。您可以访问 'view' 键(根据需要命名),其中包含页面呈现 [$this->render()->getContent
] 的 html 内容。这是我在 Symfony 5.4 项目中使用的方式。
在 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
尝试了所有可能的组合,但没有成功。有什么诀窍?
您好,您可以像这样渲染表单
public function __invoke()
{
return $this->render('my/template.html.twig', [
'form' => $form->createView()
]);
}
注:
render()
-> 将return响应对象
renderView()
-> 将 return 字符串(渲染的树枝模板)
试试
return new JsonResponse(['view' => $this->render('path/to_view.html.twig')->getContent()]);
它将 return 对您的 Ajax 呼叫做出 json 响应。您可以访问 'view' 键(根据需要命名),其中包含页面呈现 [$this->render()->getContent
] 的 html 内容。这是我在 Symfony 5.4 项目中使用的方式。