Le composant formulaire du framework Symfony est un outil très utile qui peut nous aider à créer et valider facilement des formulaires, et à interagir avec la base de données. Dans cet article, nous présenterons comment utiliser les composants de formulaire dans le framework Symfony.
1. Installer le framework Symfony
Avant de commencer, nous devons nous assurer que le framework Symfony a été installé et que les dépendances sont configurées. Si vous n'avez pas installé Symfony, vous pouvez l'installer dans le terminal via la commande suivante :
$ curl -sS https://get.symfony.com/cli/installer | bash $ sudo mv /home/your_user/.symfony/bin/symfony /usr/local/bin/symfony
2. Créer une classe de formulaire
Tout d'abord, nous devons créer une classe de formulaire, qui servira à créer des champs de formulaire, à valider les données et liez les données du formulaire à l'objet entité. Dans Symfony, les classes de formulaire sont généralement stockées dans le répertoire Form/ et se terminent par Form. Voici un exemple simple de classe de formulaire :
use SymfonyComponentFormAbstractType; use SymfonyComponentFormFormBuilderInterface; use SymfonyComponentFormExtensionCoreTypeTextType; use SymfonyComponentFormExtensionCoreTypeSubmitType; use SymfonyComponentOptionsResolverOptionsResolver; class ContactFormType extends AbstractType { public function buildForm(FormBuilderInterface $builder, array $options) { $builder ->add('name', TextType::class) ->add('email', TextType::class) ->add('message', TextType::class) ->add('submit', SubmitType::class) ; } public function configureOptions(OptionsResolver $resolver) { $resolver->setDefaults([ 'data_class' => AppEntityContact::class, ]); } }
Dans cette classe de formulaire, nous importons d'abord les classes requises par le composant de formulaire. Ensuite, nous avons ajouté les champs du formulaire dans la fonction buildForm(). Pour chaque champ, nous devons spécifier un nom de champ, un type de champ et d'autres options (telles que label et obligatoire). Enfin, nous avons ajouté un bouton de soumission. La fonction
configureOptions() est utilisée pour configurer les options de données, telles que la classe de données et le nom du formulaire.
3. Créer le modèle de formulaire
Une fois la classe de formulaire créée, nous pouvons commencer à créer le modèle de formulaire. Les modèles de formulaire sont stockés dans le répertoire templates/ et se terminent par .html.twig. Voici un exemple simple de modèle de formulaire :
{% extends 'base.html.twig' %} {% block body %} <h1>Contact Form</h1> {{ form_start(form) }} {{ form_errors(form) }} {{ form_row(form.name) }} {{ form_row(form.email) }} {{ form_row(form.message) }} {{ form_row(form.submit) }} {{ form_end(form) }} {% endblock %}
Dans ce modèle, nous étendons d'abord le modèle base.html.twig, puis ajoutons le balisage du formulaire dans le bloc corps et affichons toutes les erreurs de formulaire. Nous rendons ensuite chaque champ de formulaire un par un à l'aide de la fonction form_row(). Enfin, nous présentons le bouton de soumission.
4. Créer un contrôleur de formulaire
Nous devons maintenant créer un contrôleur pour gérer les opérations de formulaire. Dans Symfony, les contrôleurs sont généralement stockés dans le répertoire src/Controller/ et se terminent par Controller. Voici un exemple de contrôleur simple :
use SymfonyBundleFrameworkBundleControllerAbstractController; use SymfonyComponentHttpFoundationRequest; use SymfonyComponentHttpFoundationResponse; class ContactController extends AbstractController { public function index(Request $request) { $form = $this->createForm(ContactFormType::class); $form->handleRequest($request); if ($form->isSubmitted() && $form->isValid()) { $contact = $form->getData(); $entityManager = $this->getDoctrine()->getManager(); $entityManager->persist($contact); $entityManager->flush(); return $this->redirectToRoute('contact_success'); } return $this->render('contact/index.html.twig', [ 'form' => $form->createView(), ]); } public function success() { return new Response('Thanks for contacting us!'); } }
Dans ce contrôleur, nous utilisons d'abord la fonction createForm() pour créer un nouvel objet de formulaire, puis utilisons la fonction handleRequest() pour traiter les données du formulaire soumises. Si le formulaire est soumis et valide, liez les données dans un nouvel objet entité. Ensuite, nous utilisons la fonction getDoctrine() pour obtenir le gestionnaire d'entités, enregistrer l'objet entité dans la base de données, puis rediriger vers la page de réussite. Si le formulaire n'a pas été soumis ou n'est pas valide, le modèle de formulaire est affiché.
5. Créer un itinéraire
Enfin, nous devons définir un itinéraire pour indiquer quand le formulaire est rendu et quand il est soumis. Dans Symfony, les routes sont généralement stockées dans le fichier config/routes.yaml. Voici un exemple de définition de route simple :
contact: path: /contact controller: AppControllerContactController::index methods: [GET, POST] contact_success: path: /contact/success controller: AppControllerContactController::success
Dans ce fichier de route, nous définissons deux routes. La première route définit le rendu et la soumission du formulaire, le chemin est /contact, en utilisant les méthodes GET et POST, et le contrôleur est AppControllerContactController::index. La deuxième route définit l'affichage de la page de réussite, le chemin est /contact/success et le contrôleur est AppControllerContactController::success.
6. Utiliser les formulaires
Maintenant que nous avons créé la classe de formulaire, le modèle de formulaire, le contrôleur et la route, nous pouvons utiliser le formulaire. Pour utiliser un formulaire, il suffit d'accéder au parcours défini. Dans cet exemple, le chemin de notre formulaire est http://localhost:8000/contact.
Dans la page du formulaire, nous pouvons saisir toutes les informations de contact valides et cliquer sur le bouton Soumettre. Si les données saisies sont légales, les données saisies seront enregistrées dans la base de données et le message « Merci de nous avoir contactés ! » s'affichera. Si les données saisies ne sont pas valides, un message d'erreur approprié s'affiche.
Résumé
Le composant formulaire est un composant très important dans le framework Symfony. Il peut nous aider à créer et valider facilement des formulaires, et à interagir avec la base de données. Dans cet article, nous avons présenté comment utiliser les composants de formulaire dans le framework Symfony, y compris le processus de création de classes de formulaire, de modèles de formulaire, de contrôleurs et de routes, ainsi que l'utilisation de formulaires. J'espère que cet article vous sera utile et pourra créer une meilleure expérience utilisateur lors du développement d'applications Symfony.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!