将表单注入服务 - 在 Symfony 中


Inject form into Service - in Symfony

>我想将一个表单(FormInterface)注入到服务中,就我而言,它是从"RegisterType"构建的表单。我知道我可以将表单工厂和抽象表单分开注入,然后在服务中创建表单接口,但是在服务注入中立即执行此操作会更好:

# registration
app.form.type.register:
    class: UserBundle'Form'Type'RegisterType
    tags:
        - { name: form.type, alias: app_user_register }
app.form.handler.register:
    class: UserBundle'Form'Handler'RegistrationFormHandler
    arguments: [@=service('form.factory').create('@app.form.type.register')]
    scope: request

和 RegistrationFormHandler Service - 构造函数:

public function __construct(FormInterface $form)
{
    $this->form = $form;
}

所以我第一次尝试在"参数"中使用Symfony Expression语言,但我收到错误消息:

"无法加载类型'@app.form.type.register'"

如何正确使用这里的表达式语言将构建的表单注入构造函数中?问候。

我认为您要实现的是:

app.form.handler.register:
    class: UserBundle'Form'Handler'RegistrationFormHandler
    arguments: [@=service('form.factory').create(service('app.form.type.register'))]
    scope: request