我正在将api平台框架与MySQL后端一起使用。如果数据库中已有条目,则API客户端使用POST端点提交数据时会出现错误。
当前,我正在使用PRE_WRITE EventSubscriberInterface类查找原始数据库条目并将其删除。但是,与简单的更新操作相比,这似乎效率低下。
我能够更新现有的数据库条目,但是我无法删除/阻止执行POST的项目。
有没有解决的办法?是将INSERT操作更改为... ON DUPLICATE ...还是简单地停止将用户发布的数据保存到数据库中?
答案 0 :(得分:0)
您还可以使用属性“ 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;
}