Symfony / Doctrine双重录入

时间:2016-06-12 14:25:06

标签: php symfony doctrine double

我的代码有问题,我不明白是什么问题。那是我的代码:

/**
 * @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数据库。现在我删除它。

enter image description here

但是当我运行/ api / mykey / warn / someone / someone / 4时,有两个条目写入数据库。为什么会这样,我怎样才能将它只写入一次的代码更改为DB?

enter image description here

感谢您的回答!

0 个答案:

没有答案