我正在尝试设置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();
}
但我遇到两个问题:
我怎样才能做我想做的事?
答案 0 :(得分:0)
in else尝试这个
else{
$count=$stats->getCalls_Requested();
$stats->setCalls_Requested($count+1);
$this->entityManager->merge($stats);
$this->entityManager->flush();
}
答案 1 :(得分:0)
我有两个问题,一个是因为我的一个colums的大小很短,所以DB中的字段和我要插入的字段是不同的。第二个是我的$ stats是一个数组,所以我无法操纵他。 我做了以下事情以供将来参考:
$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();
}