symfony2:表单的依赖注入

时间:2014-10-30 17:20:42

标签: forms symfony dependency-injection

实际上我对将参数传递给表单的最佳方式感到困惑。据我所知,有三种方式:

  1. 将表单类转换为服务

  2. 通过数组选项传递参数

  3. 通过表单类

  4. 的构造函数传递参数

    什么是最好/最干净的方式?

2 个答案:

答案 0 :(得分:1)

在我看来:

  1. 要将表单类转换为服务 - 您可以使用DI提供的参数,如EntityManager,Router和其他服务等。
  2. 通过数组选项传递参数 - “静态”数据,例如:仅为管理员显示此字段,

答案 1 :(得分:0)

对于我的大部分表单,我创建了一个单独的表单类。当我需要使用预填充数据渲染表单时,我在控制器中加载实体并在构造表单时传递该实体。例如,如果我有一个名为$ user的实体链接到注册实体,我将填充我的表单:

    $registration = $user->getRegistration();

    $form = $this->createForm(new RegistrationType(), $registration, array());

然后我在树枝上渲染$ form:

    return $this->render(
       'AcmeAccountBundle:Account:register.html.twig',
        array('form' => $form->createView())
    );