Есть ли способ обрабатывать дубликаты? - PullRequest
0 голосов
/ 28 апреля 2019

Я использую платформу api-платформы с бэкэндом MySQL. Я получаю ошибки, когда клиенты API используют конечную точку POST для отправки данных, если в базе данных уже есть запись.

В настоящее время я использую класс PRE_WRITE EventSubscriberInterface, чтобы найти исходную запись в базе данных и удалить ее. Однако это кажется невероятно неэффективным по сравнению с простым действием обновления.

Я могу обновить существующую запись в базе данных, но затем я не могу удалить / остановить выполнение POST'd элемента.

Есть ли способ обойти это? Ether, чтобы изменить действие INSERT на ... ON DUPLICATE ... или просто остановить сохранение сохраненных в базе данных данных пользователя?

1 Ответ

0 голосов
/ 29 апреля 2019

Вы также можете использовать свойство «UniqueEntity», чтобы установить, что делает вашу сущность уникальной.

use Doctrine\ORM\Mapping as ORM;
use Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntity;

/**
 * @ORM\Entity(repositoryClass="App\Repository\ArticleRepository")
 * @ORM\HasLifecycleCallbacks()
 * @UniqueEntity("slug")
 */
class Article
{
   //...


    /**
     * @ORM\Column(type="string", length=255)
     */
    private $slug;
}
...