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] Validation entre propriétés d'objets


Sujet :

Symfony PHP

  1. #1
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2012
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

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

    Informations forums :
    Inscription : Février 2012
    Messages : 15
    Points : 10
    Points
    10
    Par défaut [Validation] Validation entre propriétés d'objets
    Bonjour,
    j'ais un petit problèmes de validation :
    j'ais 2 class a et b:
    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
     
    class a{
       private $id;
       private $i; //nbr de couts par exemple. du type"integer"
       @ORM\OneToMany(targetEntity="Bundle\Entity\B", mappedBy="a")
       private $bs;
    }
     
    class b{
       private $id;
       /**
       *@ORM\column(type="string")
       */
       private $couts; // je propose le format "cout1-cout2-...-cout(i)"
                            // avec cout1, cout2 sont des nombres.
       @ORM\ManyToOne(targetEntity="Bundle\Entity\A", inversedBy="bs")
       private $a;
    }
    lors de l'ajout d'un nouvel objet b, je veux vérifier que le nombre des couts dans l'objet de la classe B égale à la valeur $i de l'objet A parente.
    j'ais développer la fonction suivante au niveau de la classe B:
    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
     
       /**
       *@Assert\True(message="message d'erreur")
       */
       public function isCouts(){
            $nbcout = $this->geta()->getI();
            $cts = explode( "-", $this->couts );
            $nbval = count( $cts );
            if($nbcout == $nbval){
                for($j=0; $j<$nbval; $j++){
                    if(!preg_match("#[^0-9\,\.]+#", $cts[$j]))
                        $result = true;
                    else
                        $result = false;
                }
            }
            else
                $result = false;
            return $result;
        }
    mais lors de l'enregistrement j'ais toujours le message d'erreur!!!
    quelqu'un peux me donner une proposition ou une solution???
    merci d'avance.

  2. #2
    Membre actif Avatar de Legenyes
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2005
    Messages
    174
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2005
    Messages : 174
    Points : 207
    Points
    207
    Par défaut
    Bonjour

    Ce que tu a fais semble interressant.
    As tu un message d'erreur as nous donner.
    http://www.anaprosy.be - Solution et réalisation informatique

  3. #3
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2012
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

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

    Informations forums :
    Inscription : Février 2012
    Messages : 15
    Points : 10
    Points
    10
    Par défaut
    Merci Legenyes
    Le code d'erreur que j'obtient est celui que je mis dans le validateur True (message d'erreur)
    pour une cout juste ou faux.
    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
    /**
       *@Assert\True(message="message d'erreur")
       */
       public function isCouts(){
            $nbcout = $this->geta()->getI();
            $cts = explode( "-", $this->couts );
            $nbval = count( $cts );
            if($nbcout == $nbval){
                for($j=0; $j<$nbval; $j++){
                    if(!preg_match("#[^0-9\,\.]+#", $cts[$j]))
                        $result = true;
                    else
                        $result = false;
                }
            }
            else
                $result = false;
            return $result;
        }

  4. #4
    Membre actif Avatar de Legenyes
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2005
    Messages
    174
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2005
    Messages : 174
    Points : 207
    Points
    207
    Par défaut
    Ok
    Ce n'est donc pas un problème avec Symfony mais plutot un problème de logique dans ta méthode

    As u déjà vérifier ce que vaut $nbrCoup ?
    un var_dump($cts) ? ...?

    Donne peut etre des nom plus compréhensible as tes méthodes
    http://www.anaprosy.be - Solution et réalisation informatique

Discussions similaires

  1. Réponses: 1
    Dernier message: 21/02/2008, 10h23
  2. [Validator] validation d'une collection d'objet
    Par Kuroro dans le forum Struts 2
    Réponses: 1
    Dernier message: 05/02/2008, 17h42
  3. [VB.NET] PB avec lien entre propriété d'objet et TextBox
    Par apoingsfermes dans le forum Windows Forms
    Réponses: 1
    Dernier message: 19/07/2006, 11h01
  4. obtenir toutes les dates valides comprises entre dates
    Par captainamerica75 dans le forum VBA Access
    Réponses: 3
    Dernier message: 01/06/2006, 13h25
  5. Réponses: 8
    Dernier message: 22/05/2006, 09h25

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