Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
symfony4:formulaires_formulaire_avec_classe [2020/04/04 15:45] marclebrun |
— (Version actuelle) | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
- | ====== Formulaire défini dans une classe ====== | ||
- | |||
- | ===== Création de la classe de formulaire ===== | ||
- | |||
- | <code bash> | ||
- | php bin/console make:form | ||
- | </code> | ||
- | |||
- | <code> | ||
- | The name of the form class : | ||
- | > ArticleType | ||
- | </code> | ||
- | |||
- | Donner à la classe un nom qui se termine par **Type** (par exemple **ArticleType** pour éditer | ||
- | des entités de type **Article**). | ||
- | |||
- | <code> | ||
- | The name of Entity or fully qualified model class name that the new form will be bound to (empty for none): | ||
- | > App\Entity\Article | ||
- | </code> | ||
- | |||
- | Donner le nom de l'entité si le formulaire est lié à une entité, sinon laisser vide. | ||
- | |||
- | <code php ArticleType.php> | ||
- | class ArticleType extends AbstractType | ||
- | { | ||
- | public function buildForm(FormBuilderInterface $builder, array $options) | ||
- | { | ||
- | $builder | ||
- | ->add('description', TextType::class) | ||
- | ->add('couleur', TextType::class) | ||
- | // ... | ||
- | // ... | ||
- | ; | ||
- | } | ||
- | |||
- | public function configureOptions(OptionsResolver $resolver) | ||
- | { | ||
- | $resolver->setDefaults([ | ||
- | 'data_class' => Article::class, | ||
- | ]); | ||
- | } | ||
- | } | ||
- | </code> | ||
- | |||
- | ===== Utilisation dans un contrôleur ===== | ||
- | |||
- | <code php ArticleController.php> | ||
- | class ArticleController extends AbstractController | ||
- | { | ||
- | public function new() | ||
- | { | ||
- | $article = new Article(); | ||
- | // ... | ||
- | |||
- | $form = $this->createForm(ArticleType::class, $article); | ||
- | |||
- | // ... | ||
- | } | ||
- | } | ||
- | </code> | ||
- | |||
- | ===== Intégration dans un template ===== | ||
- | |||