我收到以下错误:
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 ... */
}
答案 0 :(得分:10)
FormBuilderInterface,Symfony2为FormBuilder实现FormBuilderInterface。
这不会改变事实,buildForm
必须在父类中声明并接受任何实现FormBuilderInterface
的对象。
答案 1 :(得分:9)
所以symfony book中的代码应如下所示:
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 ... */
}
这是你的意思吗?