我的代码有问题,我不明白是什么问题。那是我的代码:
/**
* @Route("/api/{key}/warn/{sender}/{player}/{reason}")
*/
public function warnAction(Request $request, $key, $sender, $player, $reason)
{
if($key == API::KEY) {
$date = new \DateTime();
$until = new \DateTime();
$until->add(new \DateInterval("P" . ($reason * 3) . "D"));
$type = $this->getBanType($reason);
$ban = new Ban();
$ban->setType($type);
$ban->setSender($sender);
$ban->setPlayer($player);
$ban->setReason($reason);
$ban->setDate($date);
$ban->setUntil($until);
$ban->setNotes("");
$manager = $this->getDoctrine()->getManager();
$manager->persist($ban);
$manager->flush();
$data = array(
"status" => "success",
"id" => $ban->getId()
);
return new JsonResponse($data);
} else {
$data = array(
"status" => "failed"
);
return new JsonResponse($data);
}
}
/**
* @param $reason
* @return int
*/
public function getBanType($reason)
{
if($reason <= 2) {
return Type::MUTE;
} else {
return Type::BAN;
}
}
现在,当我运行/ api / mykey / warn / someone / someone / 1时,一切正常,它被写入MySQL数据库。现在我删除它。
但是当我运行/ api / mykey / warn / someone / someone / 4时,有两个条目写入数据库。为什么会这样,我怎样才能将它只写入一次的代码更改为DB?
感谢您的回答!