我正在尝试设置一个eoctrine表,例如:
Provider Caller CallsRequested CallsFailed
X A 20 1
Y B 15 0
X B 5 0
等等。我目前正在这样做:
$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();
}
但是我遇到了两个问题:
- 它为我为每个呼叫请求创建了一个行,带有新ID,
- 它不会增加呼叫的数量。
我该怎么做?
否则请尝试此
else{
$count=$stats->getCalls_Requested();
$stats->setCalls_Requested($count+1);
$this->entityManager->merge($stats);
$this->entityManager->flush();
}
我遇到了两个问题,一个是因为我的一个柱子的大小是简短的,因此DB中的磁场和我要插入的一个区域是不同的。第二个是我的$统计数据是一个数组,所以我无法操纵他。我做了以下内容以备将来参考:
$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();
}