【问题标题】:Inject form into Service - in Symfony将表单注入服务 - 在 Symfony 中
【发布时间】:2016-02-25 17:22:05
【问题描述】:

我想将一个表单(FormInterface)注入到服务中,在我的例子中,它是一个从“RegisterType”构建的表单。我知道我可以分别注入formfactory和abstract form,然后在服务中创建forminterface,但是在服务注入中一次完成会好得多:

# 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 服务 - 构造函数:

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

所以我第一次尝试在“参数”中使用 Symfony 表达式语言,但我收到了错误消息:

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

如何正确使用expression language 将内置表单注入到构造函数中?问候。

【问题讨论】:

    标签: php forms symfony dependency-injection expression


    【解决方案1】:

    我认为你想要实现的是:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-01-22
      • 2017-12-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多