Symfony 3在FormType中注入容器

Sio*_*iol 8 php symfony

如何在Symfony 3.0中的FormType上注入容器?

我的services.yml文件:

services:
    advertiser.form.report:
        class: App\AdvertiserBundle\Form\ReportType
        arguments: ["@service_container"]
Run Code Online (Sandbox Code Playgroud)

在动作控制器中:

$report = $this->get( 'advertiser.form.report' );
$form = $this->createForm( $report );
Run Code Online (Sandbox Code Playgroud)

我收到了这个错误:

给出了"string","App\AdvertiserBundle\Form\ReportType"类型的预期参数

Jea*_*ean 0

正如评论中所述,修复很简单;你应该只做:

$form = $this->createForm(ReportType::class);
Run Code Online (Sandbox Code Playgroud)

无论如何,我强烈建议您不要在任何类型的类中注入整个容器。最好只注入所需的服务。