J'utilise une API qui, dans le cadre de la réponse, renvoie un tableau appelé "form". Il s'agit d'un tableau de noms de champs, de types de données et de valeurs.
Le nombre et le nom de ces champs peuvent varier en fonction du point de terminaison de l'API actuellement utilisé. Mais la structure du tableau du formulaire est toujours la même. Ainsi, le processus, en ce qui concerne Symfony, est le suivant :
- Créer un objet de formulaire
- Boucle à travers le tableau du formulaire et ajoute les éléments du tableau comme champs.
- Envoyer le tableau à la vue
En fait, ce formulaire n'est rien d'autre qu'un formulaire de recherche avancée. Il n'y a absolument aucun lien avec les Entités dans le système.
Donc, étant nouveau dans Symfony2, et après avoir lu cette documentation (http://symfony.com/doc/2.0/book/forms.html#building-the-form) j'ai essayé de faire cela dans le contrôleur en créant la fonction suivante :
/**
* Generate a form for each field passed in an array.
*
* @param array $formArray A custom array of fields do be shown in the form
* @return formView
*/
private function generateForm($formArray)
{
// Simple demo for testing
$formArray = array(
0 => array(
'name' => 'FirstName', 'type' =>'text'
),
1 => array(
'name' => 'LastName', 'type' =>'text'
)
);
$form = $this->createFormBuilder($formArray);
foreach($formArray as $field) {
$form->add($field['name'], $field['type']);
}
$form->getForm();
return $form->createView();
}
Ce que j'en retire est
Fatal error: Call to undefined method Symfony\Component\Form\FormBuilder::createView() in .... (my controller file)
Curieusement, si je fais de l'ajout des champs et de l'appel à getForm() une chaîne comme dans l'exemple du document, tout va bien.
Qu'est-ce que je fais de mal ici ?