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 :

Champ requeried alors que pas voulu [2.x]


Sujet :

Symfony PHP

  1. #1
    Membre averti
    Homme Profil pro
    Inscrit en
    Mai 2004
    Messages
    803
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 803
    Points : 356
    Points
    356
    Par défaut Champ requeried alors que pas voulu
    Bonjour,

    Lors de la génération d'une page, mon champ 'Départements' est indiqué comme 'required' alors que, dans mon entité, je ne l'ai pas indiqué comme tel.

    Voici mon attribut dans mon entité :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    /**
         * @ORM\ManyToOne(targetEntity="Hotels\GestionAnnoncesBundle\Entity\Departement")
         */
        private $departement;


    Voici mon champ dans mon formumaire :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $builder->add('departement','entity', array('class'=>'Hotels\GestionAnnoncesBundle\Entity\Departement', 'attr'=>array('onChange'=>"majPays('hotels_gestionannoncesbundle_provincetype_pays', this.value)")));


    Voici le code généré pour ma page :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <select id="hotels_gestionannoncesbundle_provincetype_departement" name="hotels_gestionannoncesbundle_provincetype[departement]" required="required" onchange="majPays('hotels_gestionannoncesbundle_provincetype_pays', this.value)">


    Un département n'étant pas obligatoire, cela est problématique.

    Merci d'avance pour votre aide.

  2. #2
    Membre actif Avatar de hazamor
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2008
    Messages
    179
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2008
    Messages : 179
    Points : 206
    Points
    206
    Par défaut
    ajouter l'attribut "nullable" dans l'annotation:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    /**
         * @ORM\ManyToOne(targetEntity="Hotels\GestionAnnoncesBundle\Entity\Departement", nullable=true)
         */
        private $departement;

  3. #3
    Membre averti
    Homme Profil pro
    Inscrit en
    Mai 2004
    Messages
    803
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 803
    Points : 356
    Points
    356
    Par défaut
    Merci beaucoup pour ta réponse et ton hyperactivité!

    En ajoutant cette propriété, j'obtiens l'erreur suivante :

    Unknown property 'nullable' on annotation 'Doctrine\ORM\Mapping\ManyToOne'.

  4. #4
    Membre actif Avatar de hazamor
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2008
    Messages
    179
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2008
    Messages : 179
    Points : 206
    Points
    206
    Par défaut
    Désolé, vous avez raison, c'est plutôt dans l'annotation JoinColumns:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    /**
         * @ORM\ManyToOne(targetEntity="Hotels\GestionAnnoncesBundle\Entity\Departement")
         * @ORM\JoinColumns({
         *   @ORM\JoinColumn(name="departement_id", referencedColumnName="id", nullable=true)
         * })
         */
        private $departement;
    avec "departement_id" est le nom de colonne dans la table de cette entité, et "id" et le nom de colonne identifiant de la table Departement.

  5. #5
    Membre averti
    Homme Profil pro
    Inscrit en
    Mai 2004
    Messages
    803
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 803
    Points : 356
    Points
    356
    Par défaut
    Encore merci...

    Cependant, ça ne fonctionne toujours pas. Voici le code dans ma classe :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
        /**
         * @ORM\ManyToOne(targetEntity="Hotels\GestionAnnoncesBundle\Entity\Departement")
         * @ORM\JoinColumns({
         *   @ORM\JoinColumn(name="departement_id", referencedColumnName="id", nullable=true)
         * })
     
         */
        private $departement;
    Le champ est toujours 'required' dans le source généré :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <select id="hotels_gestionannoncesbundle_provincetype_departement" name="hotels_gestionannoncesbundle_provincetype[departement]" required="required"

  6. #6
    Membre régulier
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2009
    Messages
    96
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2009
    Messages : 96
    Points : 111
    Points
    111
    Par défaut
    et si tu ajoutes l'option required = false pour ton champ ???

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $builder->add('departement','entity', array(
        'class'=>'Hotels\GestionAnnoncesBundle\Entity\Departement', 
        'required' => false,
    'attr'=>array('onChange'=>"majPays('hotels_gestionannoncesbundle_provincetype_pays', this.value)")
    ));

  7. #7
    Membre averti
    Homme Profil pro
    Inscrit en
    Mai 2004
    Messages
    803
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 803
    Points : 356
    Points
    356
    Par défaut
    Nickel! Comme quoi les solutions les plus simples sont celles auxquelles on ne pense pas!
    Merci beaucoup : de cette manière, ça fonctionne

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [WB17] Lenteur sous IE 8 alors que pas de lenteur sur FF 16
    Par ccambier dans le forum WebDev
    Réponses: 3
    Dernier message: 13/02/2014, 13h57
  2. Erreur alors que pas d'erreur
    Par raphl dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 14/07/2011, 11h55
  3. PB d'affichage alors que pas d'erreur en sortie
    Par avalen dans le forum SAS Base
    Réponses: 29
    Dernier message: 27/04/2011, 10h19
  4. une seule et uniqe variable qui pose probleme alors que pas les autres!
    Par guiguizekid dans le forum Général Python
    Réponses: 3
    Dernier message: 16/05/2008, 08h27
  5. [MySQL] Requête d'un champ vide alors que dans la base ce champ est non vide
    Par lex_22 dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 18/04/2008, 23h29

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