Bonjour à tous,je débute sur Symfony et je suis en train de créer un formulaire. Je voudrait analyser les données des utilisateur dans un if et mettre la répnse en base de donnée.
exemple

$nom = $_POST["nom"];
if(strlen($str) == '0')
                {
       $nom  = 'Vide';
       }

Si le champs poste et vide que l'on puisse mettre vide en base de donnée. Et pouvoir mettre la variable nom en dase de donnée.
Voici mon controleur

<?php
// src/Controller/FormController.php
namespace App\Controller;

use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\Routing\Annotation\Route;
use App\Form\LibelleFormType;
use App\Entity\Libelle;

class LibelleController extends AbstractController
{
    /**
 * @Route("/form/new")
 */
public function new(Request $request)
{
    $libelle = new Libelle();
    $libelle->setNom('Hello World');
    $libelle->setDate('Un très court libelle.');

    $form = $this->createForm(LibelleFormType::class, $libelle);

    $form->handleRequest($request);

    if ($form->isSubmitted() && $form->isValid()) {
        $em = $this->getDoctrine()->getManager();

        $em->persist($libelle);
        $em->flush();
    }

    return $this->render('default/new.html.twig', array(
        'form' => $form->createView(),
    ));
}
}

voici mon FormType

<?php

namespace App\Form;

use App\Entity\Libelle;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolver;

class LibelleFormType extends AbstractType
{
    public function buildForm(FormBuilderInterface $builder, array $options)
    {
        $builder
            ->add('nom')
            ->add('date')
        ;
    }

    public function configureOptions(OptionsResolver $resolver)
    {
        $resolver->setDefaults([
            'data_class' => Libelle::class,
        ]);
    }
}

et voici ma vue


<html>
    <head></head>
    <body>
        {{ form_start(form, {'attr': {'novalidate': 'novalidate'}}) }}
            {{ form_row(form.nom) }}
            {{ form_row(form.date) }}

            <button type="submit" class="btn btn-primary">Créer</button>
        {{ form_end(form) }}
    </body>
</html>

1 réponse


Salut

Ne récupère pas ton POST["nom"] comme tu le fais mais utilise HttpFundation :
https://symfony.com/doc/current/components/http_foundation.html

Ensuite dans ton contoller tu peux faire quelque chose comme cela :

if ($form->isSubmitted() && $form->isValid()) {

$nom = $request->request->get('nom');
if($nom == null)
{
$libelle->setNom('vide');
}
$em = $this->getDoctrine()->getManager();

    $em->persist($libelle);
    $em->flush();
}