gpt4 book ai didi

mysql - Symfony2 重复条目 - 但为什么呢?

转载 作者:太空宇宙 更新时间:2023-11-03 12:09:54 25 4
gpt4 key购买 nike

我得到以下异常:

An exception occurred while executing 'INSERT INTO tasks (task_title, task_description, task_priority, task_type, user) VALUES (?, ?, ?, ?, ?)' with params ["efswedfgvswde", "ewdfweds", "Normal", 14, 13]:

SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '13' for key 'UNIQ_505865978D93D649'

这里我将我的表单类型插入到数据库中:

$task = new Task();
$form = $this->createForm(new TaskType(), $task);

$form->handleRequest($request);

if($form->isValid()):

$em = $this->get('doctrine')->getManager();
$em->persist($task);
$em->flush();

return $this->redirect($this->generateUrl('add_task'));

endif;

这是我的任务实体中的 USER 字段:

/**
* @var User
* @Assert\Type(type="Seotool\MainBundle\Entity\User")
* @ORM\OneToOne(targetEntity="User")
* @ORM\JoinColumn(name="user", referencedColumnName="id")
*/
protected $user;

为什么不能在表“任务”中添加 2 个具有相同字段“用户”值的条目?实际上在我的数据库中有一个用户值为 13 的条目。当我在我的数据库中添加另一个用户值为 13 的条目时,我得到了这个异常。为什么?我还没有定义,那个 User 是唯一的?!

来自用户实体的 ID:

/**
* @var integer $id
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id()
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;

最佳答案

如@Qoop 所述,您的关联映射有误。

一个用户可以有许多任务 - 从用户实体转换为 OneToMany 关联。
许多任务 可能属于一个用户 - 从任务实体转换为 ManyToOne 关联。

提供的代码表明关联是单向(用户实体中没有$tasks 字段)所以只需要ManyToOne 从任务映射实体。

您的映射应如下所示:

/**
* @var User
* @Assert\Type(type="Seotool\MainBundle\Entity\User")
* @ORM\ManyToOne(targetEntity="User")
* @ORM\JoinColumn(name="user_id", referencedColumnName="id")
*/
protected $user;

您可以在 Doctrine 中了解更多关于关联的信息 here .
StackOverflow 上也有类似的问题 here .

关于mysql - Symfony2 重复条目 - 但为什么呢?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24766530/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com