php - 有没有办法处理重复的输入?
问题描述
我正在使用带有 MySQL 后端的 api-platform 框架。如果数据库中已有条目,则当 API 客户端使用 POST 端点提交数据时出现错误。
目前我正在使用 PRE_WRITE EventSubscriberInterface 类来查找原始数据库条目并将其删除。然而,与简单的更新操作相比,这似乎是令人难以置信的低效。
我能够更新现有的数据库条目,但是我无法删除/停止执行 POST 的项目。
有没有解决的办法?将 INSERT 操作更改为 ...ON DUPLICATE... 或简单地阻止用户发布的数据被保存到数据库?
解决方案
您还可以使用属性“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;
}
推荐阅读
- javascript - 在openui5中将tabindex添加到文本
- perl - 机械化模块未安装在 Windows 机器和 Ubuntu 机器中
- reactjs - 返回错误无法读取未定义的reactjs的属性'setstate'
- python - 用另一个列表中的一部分字符串填充一个列表,直到我达到一个数字
- c# - 如何使用 forloop 实例化/添加一些员工(全名为 Joe)到列表中?
- python - Python 变量在 If 语句中不起作用
- c# - C# 中的 Lambda 表达式使用具有多个左外连接的实体框架和内联附加过滤器
- corda - 如何从 RPC 访问 CordaService?
- android - 问题 Android 设备 - Charles Proxy - 互联网连接
- php - Symfony 4:在控制器和自动装配之外挣扎