Bonjour,
Je suis en train de faire évoluer mon application de SF 2.3 vers SF 2.8 et j'essaie de corriger tous les warnings liés au "deprecated"
Il y en a une que j'ai du mal, c'est celle-là :
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
Actuellement dans mon formulaire, je lui passais un paramètre et selon ce paramètre, les widgets de mon formulaire étaient différents.
De plus, sur certain formulaire, je lui passais aussi l'action en paramètre
En gros ça donne ça :
$form = $this->createForm(new ObjetFormType($page, $this->generateUrl('maroute', array('id' => $id))), $objet)
Et dans mon formulaire je fais :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| class ObjetFormType extends AbstractType
{
private $page = 0;
private $urlAction;
public function __construct($page, $url) {
$this->page = $page;
$this->urlAction = $url;
}
public function buildForm(FormBuilderInterface $builder, array $options)
{
switch($this->page){
case '0':
$builder->add(....)
break;
default:
break;
}
$builder->setMethod('POST')
->setAction($this->urlAction);
}
} |
Maintenant on doit passer le type d'objet à createForm, du coup ça donne quelque chose comme ça :
$form = $this->createForm(ObjetFormType::class, $objet)
Comment je peux faire pour passer des paramètres du coup ?
Merci de votre aide.
Partager