2016-02-25 71 views
1

我想注入一個表單(FormInterface)到服務中,在我的情況下,它是從「RegisterType」的表單構建。我知道我可以注入formfactory和抽象的形式分開,然後創建服務中forminterface,但服務注入內同時做一定會帶來更好:注入表單到服務 - 在Symfony

# 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這裏正確注入建築形式到構造?問候。

回答

1

我想你要實現的目標是:

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