我正在使用带有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;
}