Create a simple form

I just want to create a simple contact form in Symfony 2.1. How?

ContactForm.php:

namespace frontend\mainBundle\Form; use Symfony\Component\Form\AbstractType; use Symfony\Component\Form\FormBuilder; class ContactForm extends AbstractType { public function buildForm(FormBuilder $builder, array $options) { $builder->add('subject', 'textarea'); $builder->add('email', 'email'); $builder->add('message', 'textarea'); } public function getName() { return 'contact'; } } 

Defaultcontroller.php

 namespace frontend\mainBundle\Controller; use Symfony\Bundle\FrameworkBundle\Controller\Controller; use mylib\DataFormatChecker; use frontend\mainBundle\Form\ContactForm; use Symfony\Component\HttpFoundation\Request; class DefaultController extends Controller { public function contactAction(Request $request) { $task = array(); $form = $this->createFormBuilder(new ContactForm(), $task); if ($request->getMethod() == 'POST') { $form->bindRequest($request); if ($form->isValid()) { // perform some action, such as saving the task to the database //return $this->redirect($this->generateUrl('task_success')); } } return $this->render('frontendmainBundle:Default:contact.html.php', array( 'form' => $form->createView() )); } } 

Error: The declaration frontend \ mainBundle \ Form \ ContactForm :: buildForm () must be compatible with Symfony \ Component \ Form \ FormTypeInterface :: buildForm (Symfony \ Component \ Form \ FormBuilderInterface $ builder, array $ options) on line 8 in ContactForm. php.

What's wrong?

Sorry, used for symfony 1.4

+4
source share
1 answer

The error has nothing to do with symfony. This is because the declaration of the buildForm function buildForm not match the function of the base class (AbstractType). The first buildForm parameter must be an instance of FormBuilderInterface , while your first parameter is an instance of FormBuilder

 // ... use Symfony\Component\Form\FormBuilderInterface; class ContactForm extends AbstractType { public function buildForm(FormBuilderInterface $builder, array $options) // ... 
+4
source

All Articles