IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Symfony PHP Discussion :

[Validation] Problème lors de la validation d'un formulaire


Sujet :

Symfony PHP

  1. #1
    Candidat au Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2008
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Octobre 2008
    Messages : 3
    Points : 4
    Points
    4
    Par défaut [Validation] Problème lors de la validation d'un formulaire
    Bonjour,

    J'ai un problème actuellement sur un formulaire.

    Lorsque je tente de valider celui-ci, j'obtiens l'erreur "This value should be blank" (ou en français "Cette valeur doit être vide").

    Je me dit que c'est surement lié à une assertion mais le problème c'est que dans mes entités je n'ai pas défini de champ avec l'assertion Blank().

    De plus j'affiche systématiquement les erreurs pour chaque champs définis dans mon template grâce à {{ form_errors(form.mon_nom_de_champ) }} et laisse {{ form_errors(form) }} pour afficher les erreurs globales.

    L'erreur s'affiche bien comme une erreur globale mais impossible pour moi de connaître le champ qui pose problème.

    J'ai bien sûr vidé plusieurs fois le cache à l'aide de la commande php app/console cache:clear mais rien n'y fait.

    J'ai tenté de mettre dans le controller ceci echo '<pre>'; var_dump($form->getErrors()); echo '</pre>'; mais toujours pas de trace du champ qui pose problème.

    Alors si quelqu'un a une idée d'où pourrait venir le problème ou alors comment accéder au champs dont la validation pose problème, je suis preneur

  2. #2
    Membre régulier Avatar de khand
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juillet 2008
    Messages
    120
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2008
    Messages : 120
    Points : 118
    Points
    118
    Par défaut
    Salut,

    Peux-tu nous montrer ton code source ?

    Bonne journée
    "Rather than love, than monney, than faith, than
    fame, than fairness, give me truth."

  3. #3
    Candidat au Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2008
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Octobre 2008
    Messages : 3
    Points : 4
    Points
    4
    Par défaut
    Pour l'entité :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
     
    **
     * @orm\Entity
     */
    class Customer
    {
        /**
    	 * @orm\GeneratedValue
    	 * @orm\Id
    	 * @orm\Column(type="integer")
    	 */
    	private $id;
     
        /**
    	 * @orm\Column(type="string", length="255")
    	 * @assert\NotBlank()
    	 * @assert\MinLength(limit = 3, message = "error.name.minlength")
         * @assert\MaxLength(limit = 255, message = "error.name.maxlength")
    	 */
    	private $name;
     
        /**
    	 * @orm\Column(type="string", length="255")
    	 * @assert\NotBlank()
    	 * @assert\MinLength(limit = 3, message = "error.login.minlength")
         * @assert\MaxLength(limit = 255, message = "error.login.maxlength")
    	 */
    	private $login;
     
        /**
    	 * @orm\Column(type="string", length="255")
    	 * @assert\NotBlank()
    	 * @assert\MinLength(limit = 3, message = "error.password.minlength")
         * @assert\MaxLength(limit = 15, message = "error.password.maxlength")
    	 */
    	private $password;
     
        /**
    	 * @orm\Column(type="string", length="255")
    	 * @assert\NotBlank()
    	 * @assert\MinLength(limit = 3, message = "error.address.minlength")
         * @assert\MaxLength(limit = 255, message = "error.address.maxlength")
    	 */
    	private $address;
     
        /**
    	 * @orm\Column(type="datetime")
         * @assert\DateTime()
    	 */
    	private $creationDate;
     
        /**
    	 * @orm\Column(type="string", length="255")
    	 * @assert\NotBlank()
    	 * @assert\Url()
    	 */
    	private $webSite;
     
        /**
    	 * @orm\Column(type="string", length="255")
         * @assert\MaxLength(limit = 255, message = "error.frenchSiret.maxlength")
    	 */
    	private $frenchSiret;
     
        /**
    	 * @orm\Column(type="string", length="255")
         * @assert\MaxLength(limit = 255, message = "error.europeanVat.maxlength")
    	 */
    	private $europeanVat;
     
        /**
    	 * @orm\ManyToOne(targetEntity="CustomerType")
    	 */
    	private $customerType;
     
     
        /**
    	 * @orm\ManyToOne(targetEntity="CustomerStatus")
    	 */
    	private $customerStatus;
     
        /**
    	 * @orm\ManyToOne(targetEntity="City")
    	 */
    	private $city;
    Pour la class Form de mon entité :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
     
    class CustomerForm extends AbstractType
    {
       public function buildForm(FormBuilder $builder, array $options)
       {
           $builder
               ->add('name', 'text', array('label' => 'customer.name'))
               ->add('login', 'text', array('label' => 'customer.login'))
               ->add('password', 'text', array('label' => 'customer.password'))
               ->add('address', 'text', array('label' => 'customer.address'))
               ->add('creationDate', 'datetime', array('label' => 'customer.creationDate'))
               ->add('frenchSiret', 'text', array('label' => 'customer.frenchSiret',
                                        'required' => false
                                        )
                                    )
               ->add('webSite', 'text', array('label' => 'customer.webSite',
                                        'required' => false
                                        )
                                    )
               ->add('europeanVat', 'text', array('label' => 'customer.europeanVat',
                                        'required' => false
                                        )
                                    )
               ->add('customerType', 'entity', array('label' => 'customerType',
                                        'class' => 'Portal\CustomerManagementBundle\Entity\customerType',
                                        'property' => 'name',
                                        'required' => true,
                                        'multiple' => false
                                        )
                                    )
                ->add('customerStatus', 'entity', array('label' => 'customerStatus',
                                        'class' => 'Portal\CustomerManagementBundle\Entity\customerStatus',
                                        'property' => 'name',
                                        'required' => true,
                                        'multiple' => false
                                        )
                                    )
                ->add('city', 'entity', array('label' => 'city',
                                        'class' => 'Portal\CustomerManagementBundle\Entity\City',
                                        'property' => 'name',
                                        'required' => true,
                                        'multiple' => false
                                        )
                                    )
               ;
       }
    Et enfin mon template :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
     
    {% extends 'PortalCustomerManagementBundle::layout.html.twig' %}
     
    {% block title %}{{ "customer.add" | trans }}{% endblock %}
     
    {% block additionalStyles %}
        <link rel="stylesheet" href="{{ asset('bundles/portalcustomermanagement/css/customer.css') }}" type="text/css" media="all" />
    {% endblock %}
     
    {% block portalBody %}
     
    {% if message %}
    <p>{{ message }}</p>
    {% endif %}
     
    <form action="" method="post" {{ form_enctype(form) }}>
        <div id="customerEditFormArea">
     
            <div class="CustomerFormRow" id="EditFormAreaTitleRow">
                {{ "customer.add" | trans }}
            </div>
     
            <div class="CustomerFormRow" id="EditFormAreaErrorRow">
                {{ form_errors(form) }}
            </div>
     
            <div class="CustomerFormRow">
                <div class="CustomerLeftBox">{{ form_label(form.name) }} :&nbsp;</div>
                <div class="CustomerRightBox">{{ form_widget(form.name) }}</div>
                <div class="CustomerErrorBox">{{ form_errors(form.name) }}</div>
            </div>
     
            <div class="CustomerFormRow">
                <div class="CustomerLeftBox">{{ form_label(form.login) }} :&nbsp;</div>
                <div class="CustomerRightBox">{{ form_widget(form.login) }}</div>
                <div class="CustomerErrorBox">{{ form_errors(form.login) }}</div>
            </div>
     
            <div class="CustomerFormRow">
                <div class="CustomerLeftBox">{{ form_label(form.password) }} :&nbsp;</div>
                <div class="CustomerRightBox">{{ form_widget(form.password) }}</div>
                <div class="CustomerErrorBox">{{ form_errors(form.password) }}</div>
            </div>
     
            <div class="CustomerFormRow">
                <div class="CustomerLeftBox">{{ form_label(form.customerType) }} :&nbsp;</div>
                <div class="CustomerRightBox">{{ form_widget(form.customerType) }}</div>
                <div class="CustomerErrorBox">{{ form_errors(form.customerType) }}</div>
            </div>
     
            <div class="CustomerFormRow">
                <div class="CustomerLeftBox">{{ form_label(form.customerStatus) }} :&nbsp;</div>
                <div class="CustomerRightBox">{{ form_widget(form.customerStatus) }}</div>
                <div class="CustomerErrorBox">{{ form_errors(form.customerStatus) }}</div>
            </div>
     
            <div class="CustomerFormRow">
                <div class="CustomerLeftBox">{{ form_label(form.address) }} :&nbsp;</div>
                <div class="CustomerRightBox">{{ form_widget(form.address) }}</div>
                <div class="CustomerErrorBox">{{ form_errors(form.address) }}</div>
            </div>
     
            <div class="CustomerFormRow">
                <div class="CustomerLeftBox">{{ form_label(form.city) }} :&nbsp;</div>
                <div class="CustomerRightBox">{{ form_widget(form.city) }}</div>
                <div class="CustomerErrorBox">{{ form_errors(form.city) }}</div>
            </div>
     
            <div class="CustomerFormRow">
                <div class="CustomerLeftBox">{{ form_label(form.webSite) }} :&nbsp;</div>
                <div class="CustomerRightBox">{{ form_widget(form.webSite) }}</div>
                <div class="CustomerErrorBox">{{ form_errors(form.webSite) }}</div>
            </div>
     
            <div class="CustomerFormRow">
                <div class="CustomerLeftBox">{{ form_label(form.frenchSiret) }} :&nbsp;</div>
                <div class="CustomerRightBox">{{ form_widget(form.frenchSiret) }}</div>
                <div class="CustomerErrorBox">{{ form_errors(form.frenchSiret) }}</div>
            </div>
     
            <div class="CustomerFormRow">
                <div class="CustomerLeftBox">{{ form_label(form.europeanVat) }} :&nbsp;</div>
                <div class="CustomerRightBox">{{ form_widget(form.europeanVat) }}</div>
                <div class="CustomerErrorBox">{{ form_errors(form.europeanVat) }}</div>
            </div>
     
            <div class="CustomerFormRow">
                <div class="CustomerLeftBox">{{ form_label(form.creationDate) }} :&nbsp;</div>
                <div class="CustomerRightBox">{{ form_widget(form.creationDate) }}</div>
                <div class="CustomerErrorBox">{{ form_errors(form.creationDate) }}</div>
            </div>
     
            <div class="CustomerFormRow" id="EditFormAreaSubmitRow">
                {{ form_rest(form) }}
                <input type="submit" value="{{ "global.submit" | trans }}" />
            </div>
     
        </div>
    </form>
     
    <p>
        <a href="{{ path('PortalCustomerManagementBundle_customer_list') }}">
            {{ "customer.returnLink" | trans }}
        </a>
    </p>
     
    {% endblock %}

  4. #4
    Membre confirmé
    Développeur Web
    Inscrit en
    Avril 2005
    Messages
    397
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2005
    Messages : 397
    Points : 518
    Points
    518
    Par défaut
    Sur celle ci je pourrai pas t'aider mais courage, la lumière viendra a qui sait attendre
    Zend PHP5 Certification
    MySQL 4 Core Certification

Discussions similaires

  1. Réponses: 0
    Dernier message: 08/02/2013, 14h35
  2. [2.x] Problème lors de la validation d'un formulaire
    Par magicbisous-nours dans le forum Symfony
    Réponses: 3
    Dernier message: 27/06/2012, 16h40
  3. Problème lors de la validation
    Par mer26 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 21/05/2012, 20h20
  4. [JAXB] Problème lors de la validation des éléments importés
    Par l'index dans le forum Format d'échange (XML, JSON...)
    Réponses: 0
    Dernier message: 11/05/2012, 17h37
  5. [XSD] Problème lors de la validation d'un xml
    Par TheRealWill dans le forum Valider
    Réponses: 2
    Dernier message: 29/09/2010, 15h12

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo