Bonjour,
Je suis actuellement un tuto pour developper un blog sous Symfony, je travail sur la version 2.8.
Cependant mon tuto utilise une version ultérieur et à quelques erreur 'depreciated' avec le formulaire.
" Passing type instances to FormBuilder::add(), Form::add() or the FormFactory is deprecated since version 2.8 and will not be supported in 3.0. Use the fully-qualified type class name instead (Blogger\BlogBundle\Form\EnquiryType)."
Mon formulaire marche, mais pour un soucis de faire les choses avec ce qui se fait maintenant, j'aimerais savoir comment je peux modifier mon code pour qu'il ne soit plus déprécié?
Mon controller:
<?php
// src/Blogger/BlogBundle/Controller/PageController.php
namespace Blogger\BlogBundle\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Blogger\BlogBundle\Form\EnquiryType;
use Blogger\BlogBundle\Entity\Enquiry;
class PageController extends Controller
{
public function indexAction()
{
return $this->render('BloggerBlogBundle:Page:index.html.twig');
}
public function aboutAction(){
return $this->render('BloggerBlogBundle:Page:about.html.twig');
}
public function contactAction()
{
$enquiry = new Enquiry();
$form = $this->createForm(new EnquiryType(), $enquiry);
return $this->render('BloggerBlogBundle:Page:contact.html.twig',array(
'form' => $form->createView()
));
}
}
J'ai utiliser doctrine pour me générer un type de formulaire.
<?php
namespace Blogger\BlogBundle\Form;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolver;
class EnquiryType extends AbstractType
{
/**
* {@inheritdoc}
*/
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('name')
->add('email', 'email')
->add('subject')
->add('body', 'textarea') ;
}
public function getName()
{
return 'contact';
}
/**
* {@inheritdoc}
*/
public function configureOptions(OptionsResolver $resolver)
{
$resolver->setDefaults(array(
'data_class' => 'Blogger\BlogBundle\Entity\Enquiry'
));
}
/**
* {@inheritdoc}
*/
public function getBlockPrefix()
{
return 'blogger_blogbundle_enquiry';
}
}
Merci pour votre aide :)