setDefaultOptions()必须与Symfony \ Component \ Form \ FormTypeInterface :: setDefaultOptions()兼容

时间:2018-09-26 08:28:32

标签: php forms symfony

我正在基于Symfony 2.7开发一个项目。

我为自定义表单类型添加了以下功能:

public function setDefaultOptions(OptionsResolver $resolver)
{
    $resolver->setDefaults(
      [
          'error_bubbling' => true
      ]
    );
}

...,并且在加载表单时,我现在得到以下FatalErrorException:

  

编译错误:的声明   MyCompany \ AppBundle \ Form \ ContactType :: setDefaultOptions()必须为   与...兼容   Symfony \ Component \ Form \ FormTypeInterface :: setDefaultOptions(Symfony \ Component \ OptionsResolver \ OptionsResolverInterface   $ resolver)

浏览FormTypeInterface::setDefaultOptions(),看来我符合方法签名。我究竟做错了什么?

1 个答案:

答案 0 :(得分:2)

您可以正确输入$resolver,它应该是OptionsResolverInterface,而不是OptionsResolver

或者,最好将setDefaultOptions(OptionsResolverInterface $resolver)替换为configureOptions(OptionsResolver $resolver),因为Symfony 2.7 source中已弃用了

public function configureOptions(OptionsResolver $resolver)
{
    $resolver->setDefaults(
        [
            'error_bubbling' => true
        ]
    );
}