RegistrationFormType :: buildForm () is incompatible

I just upgrade my Symfony 2.0.12 project to 2.1. I also installed FosUserBundle, but when I run the command

php composer.phar update 

then the composer gives an error:

 Loading composer repositories with package information Updating dependencies Writing lock file Generating autoload files PHP Fatal error: Declaration of User\UserBundle\Form\Type\RegistrationFormType::buildForm() must be compatible with that of Symfony\Component\Form\FormTypeInterface::buildForm() in /home/mark/dev/proj/src/User/UserBundle/Form/Type/RegistrationFormType.php on line 38 Fatal error: Declaration of User\UserBundle\Form\Type\RegistrationFormType::buildForm() must be compatible with that of Symfony\Component\Form\FormTypeInterface::buildForm() in /home/mark/dev/proj/src/User/UserBundle/Form/Type/RegistrationFormType.php on line 38 Script Sensio\Bundle\DistributionBundle\Composer\ScriptHandler::clearCache handling the post-update-cmd event terminated with an exception 

He says that my previous RegistrationFormType is incompatible with the new Symfony 2.1 form interface.

My composer .json

 // ... "friendsofsymfony/user-bundle": "*", //... 

My RegistrationFormType.php

 <?php namespace User\UserBundle\Form\Type; use Symfony\Component\Form\FormBuilderInterface; use FOS\UserBundle\Form\Type\RegistrationFormType as BaseType; class RegistrationFormType extends BaseType { public function buildForm(FormBuilder $builder, array $options) { parent::buildForm($builder, $options); // add your custom field $builder->add('name') ->add('surname') ->add('gender', 'choice', array( 'choices' => array('m' => 'Male', 'f' => 'Female'), 'empty_value' => 'Please select', )) ->add('address') ->add('zip') ->add('country', 'country', array( 'empty_value' => 'Please select', )) ->add('dateOfBirth', 'date', array( 'empty_value' => '', 'years' => range(date('Y')-100, date('Y')), )) ->add('agree', 'checkbox', array( 'label' => 'Check here to agree to the sites terms and Conditions and Data Privacy Policy.', )); } public function getName() { return 'user_user_registration'; } } 

Any idea what is wrong?

+6
source share
1 answer

Your buildFOrm method uses the old scheme .. this has changed:

 public function buildForm(FormBuilderInterface $builder, array $options) 

also make sure you include a new one.

 use Symfony\Component\Form\FormBuilderInterface; 
+17
source

Source: https://habr.com/ru/post/925061/


All Articles