PHP фатальная ошибка: Я пытаюсь реализовать формуAbstractType в моем приложении Symfony2
Я получаю следующую ошибку:
Fatal error: Declaration of BeanOauthServerBundleFormTypeAuthorizeFormType::buildForm() must be compatible with SymfonyComponentFormFormTypeInterface::buildForm(SymfonyComponentFormFormBuilderInterface $builder, array $options) in src/Bean/OauthServerBundle/Form/Type/AuthorizeFormType.php on line 25
Не уверен, почему я получаю эту ошибку. AbstractType:: buildForm() принимает FormBuilderInterface, а Symfony2 реализует FormBuilderInterface для FormBuilder.
вот содержание моего источника:
<?php
namespace BeanOauthServerBundleFormType;
use SymfonyComponentFormFormBuilder;
use SymfonyComponentFormAbstractType;
class AuthorizeFormType extends AbstractType
{
public function buildForm(FormBuilder $builder, array $options)
{
/* some code ... */
}
/* more code ... */
}
2 ответов
FormBuilderInterface, а Symfony2 реализует FormBuilderInterface для FormBuilder.
это не меняет того факта, что 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 ... */
}
это то, что вы имеете в виду?