Php 无法在我的formType中加载TranslatorInterface

Php 无法在我的formType中加载TranslatorInterface,php,symfony,dependency-injection,formbuilder,Php,Symfony,Dependency Injection,Formbuilder,我尝试在聊天包中引入一些翻译,以便跟踪Symfony 4中托管应用程序的_语言环境的变化 因此,在formBuilder中,我尝试注入TranslatorInterface,如下所示: //lib/ChatBundle/Form/ChatMessageType.php 名称空间bornToBeAlive\ChatBundle\Form; 使用bornToBeAlive\ChatBundle\Entity\ChatMessage; 使用Symfony\Component\Form\Abstract

我尝试在聊天包中引入一些翻译,以便跟踪Symfony 4中托管应用程序的_语言环境的变化

因此,在formBuilder中,我尝试注入TranslatorInterface,如下所示:

//lib/ChatBundle/Form/ChatMessageType.php 名称空间bornToBeAlive\ChatBundle\Form; 使用bornToBeAlive\ChatBundle\Entity\ChatMessage; 使用Symfony\Component\Form\AbstractType; 使用Symfony\Component\Form\FormBuilderInterface; 使用Symfony\Component\OptionsResolver\OptionsResolver; 使用Symfony\Component\Translation\translator接口; 类ChatMessageType扩展了AbstractType { 私人$trans; 公共函数\uu构造函数translator接口$trans { $this->trans=$trans; } 公共函数buildFormFormBuilderInterface$builder,数组$options { $builder ->添加'content',null[ 'attr'=>['placeholder'=>$this->trans->trans'placeholder',[],'chat'] ] ; } 公共函数配置选项选项解析程序$resolver { $resolver->setDefaults[ 'data_class'=>ChatMessage::class, ]; } } 但当我试着表演动作时:

公众活动:回应 { $message=新聊天室消息; $form=$this->createFormChatMessageType::class,$message; return$this->render'@Chat/show.html.twig'[ 'form'=>$form->createView, ]; } 我得到以下错误:

函数bornToBeAlive\ChatBundle\Form\ChatMessageType::u构造的参数太少,第92行传入了0../vendor/symfony/Form/FormRegistry.php,预期正好是1

我很惊讶,因为我在其他类型的主机应用程序中使用这种技术。我做错什么了吗?

根据:

如果您使用的是default services.yaml配置,那么这个示例已经可以使用了!否则,请为此表单类创建一个服务,并用form.type标记它

如果自动连接未按预期工作,则可以将表单定义为服务,如下所示

# config/services.yaml
app.form.corporation_type:
    class: bornToBeAlive\ChatBundle\Entity\ChatMessageType
    arguments: ["@translator"]
    tags:
        - { name: form.type }

symfony版本是什么?还有-你如何使用ChatMessageType?你确定类型在依赖注入中是受支持的吗?据我所知,要自动连接,它们必须被视为一种服务,而我认为它不是一种类型。我在托管应用程序的所有类型中都使用它,它就像一个具有相同界面的角色一样工作?抱歉,您清除了缓存吗?显示您执行ChatMessageTypes的代码,并查看:由于我生活在一个单独的包中,所以我没有设置autowire选项。我需要手动声明服务。
# config/services.yaml
app.form.corporation_type:
    class: bornToBeAlive\ChatBundle\Entity\ChatMessageType
    arguments: ["@translator"]
    tags:
        - { name: form.type }