【发布时间】:2021-04-23 22:14:30
【问题描述】:
我在 API 平台中有我的 UserProfile 实体,我正在通过 JWT 登录令牌确定所有者。当我在用户已经拥有用户配置文件时创建用户配置文件时,我想抛出这样的错误。但是,当我这样做时,我会收到有关具有重复实体的数据库错误消息。
Stack Overflow 上关于这个问题的每个线程都提到确保每个字段(在我的例子中是用户名和所有者)都有一个 UniqueEntity,我已经这样做了。
#[UniqueEntity('username')]
#[UniqueEntity('owner')]
/**
* @ORM\Entity
*/
class UserProfile
{
/**
不幸的是,我仍然收到相同的消息:
"debugMessage": "执行'INSERT INTO user_profile (id, username, first_name, last_name,birthday, biography, website, owner_id, image_id) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)' with params ["0a90b58d-12ba-4f00-a924-5c5b6073389a", "test", null, null, null, null, null, "501a54a4-5ec3-4fd7-9821-6421605e733f", 2] :\n\nSQLSTATE[23505]:唯一违规:7 错误:重复键值违反唯一约束“uniq_d95ab4057e3c61f9”\n详细信息:键 (owner_id)=(501a54a4-5ec3 -4fd7-9821-6421605e733f) 已经存在。",
/**
* @ORM\OneToOne(targetEntity=User::class, inversedBy="userProfile", cascade={"persist", "remove"})
*/
#[Groups(["userProfile:read"])]
#[Assert\Valid()]
private $owner;
【问题讨论】:
标签: symfony doctrine api-platform.com