Bonsoir à tous, je débute sur symfony et je voudrai que lorsque on ne complete pas un champs que cela me marque par exemple à compléter. J'ai mis ma condition en cas de champs vide afin que cela me marque ma notification en base de données mais cette condition fonctionne aussi bien le champs indique ou non. cela vient surment d'une erreur de la nomination du champs. A la ligne

 $nom = $request->request->get('nom'); 

Je ne sait pas comment nommer mon get? Ma condition ne trouve pas mes information dans mon champ nom de mon formulaire. Pouvez vous m'aider?

Voici mon contoleur

<?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("/libelle")
 */
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();

        $nom = $request->request->get('nom');
if($nom == null)
{
$libelle->setValidation('vide');
}

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

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

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>

et voici le code source de ma vue


<form name="libelle_form" method="post" novalidate="novalidate">
            <div><label for="libelle_form_nom">Nom</label><input type="text" id="libelle_form_nom" name="libelle_form[nom]" maxlength="255" value="Hello World" /></div>
            <div><label for="libelle_form_date">Date</label><input type="text" id="libelle_form_date" name="libelle_form[date]" maxlength="255" value="Un très court libelle." /></div>

            <button type="submit" class="btn btn-primary">Créer</button>
        <input type="hidden" id="libelle_form__token" name="libelle_form[_token]" value="FUh5_Y1b5p8YVgk7RpYv7ME-JdGsfqSXUEnM27XCnvw" /></form>

2 réponses


Salut,

essai avec ça ;)

if ($form->isSubmitted() && $form->isValid()) {
        $em = $this->getDoctrine()->getManager();
        if( $libelle->getNom() == null)
        {
            $libelle->setNom("vide")
        }

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

J'ai put faire fonctioner ma condition! Merci pour l'aide!