Symfony / Doctrine двойная запись

У меня проблема с моим кодом, и я не понимаю, в чем проблема. Это мой код:

/**
* @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 / кто-то / кто-то / 1, все работает, и это записывается в базу данных MySQL. Теперь я его удаляю.

введите описание изображения здесь

Но когда я запускаю / api / mykey / warn / кто-то / кто-то / 4, в БД записываются две записи. Почему, и как я могу изменить код, который записывается в БД только один раз?

введите описание изображения здесь

Спасибо за ответ!

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector