首页 > 解决方案 > 有没有办法处理重复的输入?

问题描述

我正在使用带有 MySQL 后端的 api-platform 框架。如果数据库中已有条目,则当 API 客户端使用 POST 端点提交数据时出现错误。

目前我正在使用 PRE_WRITE EventSubscriberInterface 类来查找原始数据库条目并将其删除。然而,与简单的更新操作相比,这似乎是令人难以置信的低效。

我能够更新现有的数据库条目,但是我无法删除/停止执行 POST 的项目。

有没有解决的办法?将 INSERT 操作更改为 ...ON DUPLICATE... 或简单地阻止用户发布的数据被保存到数据库?

标签: phpsymfonyapi-platform.com

解决方案


您还可以使用属性“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;
}

推荐阅读