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.