Symfony2全局变量持有注册表

时间:2015-06-10 15:13:20

标签: forms symfony

我在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按钮获得,该按钮可以在我的网站上的几个页面上保留(网站顶部的典型注册按钮)。

这里的问题是,这要求我复制上面的代码,将表单创建到我的应用程序的所有剩余控制器中!

有没有办法通过某种全局变量提供此注册表单?

2 个答案:

答案 0 :(得分:2)

是的,您需要embed the controller。例如,如果您有somePage.html.twig,则在该页面中执行以下操作:

{{ render(controller("AcmeBundle:ControllerName:register")) }}

注意嵌入会创建子请求。如果您不熟悉请求堆栈,则应阅读here

希望这会有所帮助......

答案 1 :(得分:2)

您不需要在项目的所有控制器中编写它, 你可以在你的基础树枝文件中调用控制器

{{ render(controller('YourBundle:ControllerName:register' }}

在你的基础树枝文件中