我在Twig中创建并提供如下用户注册表单:
public function registerAction()
{
$registration = new Registration();
$form = $this->createForm(new RegistrationType(), $registration, array(
'action' => $this->generateUrl('account_create'),
));
return $this->render(
'RezialRezialBundle:Account:register.html.twig',
array('form' => $form->createView())
);
}
这很好用。但是,我希望我的注册表单可以通过HTML按钮获得,该按钮可以在我的网站上的几个页面上保留(网站顶部的典型注册按钮)。
这里的问题是,这要求我复制上面的代码,将表单创建到我的应用程序的所有剩余控制器中!
有没有办法通过某种全局变量提供此注册表单?
答案 0 :(得分:2)
是的,您需要embed the controller。例如,如果您有somePage.html.twig
,则在该页面中执行以下操作:
{{ render(controller("AcmeBundle:ControllerName:register")) }}
注意嵌入会创建子请求。如果您不熟悉请求堆栈,则应阅读here。
希望这会有所帮助......
答案 1 :(得分:2)
您不需要在项目的所有控制器中编写它, 你可以在你的基础树枝文件中调用控制器
{{ render(controller('YourBundle:ControllerName:register' }}
在你的基础树枝文件中