2017-09-12 1 views
0

Je suis en train de mettre une table Eoctrine, comme ceci:Créer une table statitics pour les appels avec Doctrine

Provider Caller CallsRequested CallsFailed 
X   A  20    1 
Y   B  15    0 
X   B  5    0 

Et ainsi de suite. Je suis actuellement comme ceci:

$repository = $this->entityManager->getRepository(Stats::Class); 



    $stats = $repository->findBy(
     array('provider' => $provider, 'CallCenter'=> $callCenterContact)); //returns NULL 


     if (!$stats) { 
      $stats = new stats; 
      $stats->setProvider($provider); 
      $stats->setCallCenter($callCenterContact); 
      $stats->setCalls_Requested(1); 

      $this->entityManager->persist($stats); 
      $this->entityManager->flush(); 

      } 
      else{ 
      $count=$stats->getCalls_Requested(); 
      $stats->setCalls_Requested($count+1); 
      $id = $stats->getId();  
      $stats->setId($id); 
      $this->entityManager->persist($stats); 
      $this->entityManager->flush(); 
      } 

Mais je reçois deux problèmes:

  • il me crée une ligne pour chaque demande d'appel, avec un nouvel identifiant,
  • n'incrémente pas le nombre d'appels.

Comment puis-je faire ce que je veux?

Répondre

0

dans d'autre essayer

 else{ 
      $count=$stats->getCalls_Requested(); 
      $stats->setCalls_Requested($count+1); 
      $this->entityManager->merge($stats); 
      $this->entityManager->flush(); 
      } 
+0

J'ai déjà essayé ça, même problème ... –

0

J'ai eu deux problèmes, on était parce que la taille d'un de mes colums était à court, de sorte que le champ de la DB et celui que je triying d'insérer était diferent . La seconde était que mon $ stats était un tableau, donc je ne pouvais pas le manipuler. J'ai fait ce qui suit pour référence future:

$repository = $this->entityManager->getRepository(Stats::Class); 

    $stats = $repository->findBy(
    array('provider' => $provider, 'CallCenter'=>$callCenterContact)); 


    if (!$stats) { 
     $stats = new stats; 
     $stats->setProvider($provider); 
     $stats->setCallCenter($callCenterContact); 
     $stats->setCalls_Requested(1); 

     $this->entityManager->persist($stats); 
     $this->entityManager->flush(); 

     } 
     else{ 
     $stats[0]->setCalls_Requested($stats[0]->getCalls_Requested()+1); 

     $this->entityManager->persist($stats[0]); 
     $this->entityManager->flush(); 
     }