我得到以下错误:
Fatal error: Declaration of Bean'OauthServerBundle'Form'Type'AuthorizeFormType::buildForm() must be compatible with Symfony'Component'Form'FormTypeInterface::buildForm(Symfony'Component'Form'FormBuilderInterface $builder, array $options) in src/Bean/OauthServerBundle/Form/Type/AuthorizeFormType.php on line 25
不确定我为什么会出现此错误。AbstractType::buildForm()采用FormBuilderInterface,Symfony2为FormBuilder实现FormBuilderInterface。
以下是我的内容来源:
<?php
namespace Bean'OauthServerBundle'Form'Type;
use Symfony'Component'Form'FormBuilder;
use Symfony'Component'Form'AbstractType;
class AuthorizeFormType extends AbstractType
{
public function buildForm(FormBuilder $builder, array $options)
{
/* some code ... */
}
/* more code ... */
}
FormBuilderInterface,Symfony2为FormBuilder实现了FormBuilderInterface。
这并没有改变这样一个事实,即buildForm
必须声明为父类,并接受任何实现FormBuilderInterface
的对象。
所以symfony书中的代码应该是这样的:
namespace Bean'OauthServerBundle'Form'Type;
use Symfony'Component'Form'FormBuilderInterface;
use Symfony'Component'Form'AbstractType;
class AuthorizeFormType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options)
{
/* some code ... */
}
/* more code ... */
}
这就是你的意思吗?