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à :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
$form = $this->createForm(new ObjetFormType($page, $this->generateUrl('maroute', array('id' => $id))), $objet)
Et dans mon formulaire je fais :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
$form = $this->createForm(ObjetFormType::class, $objet)
Comment je peux faire pour passer des paramètres du coup ?
Merci de votre aide.