如何在主键上添加字段/参数?

时间:2012-12-27 11:47:57

标签: php sql symfony doctrine-orm

我使用Symfony2.0和Doctrine,我创建了这个实体:

class MetaInformationsQuestionUser
{
  /**
   * @ORM\Id
   * @ORM\ManyToOne(targetEntity="Myproject\Bundle\UserBundle\Entity\User")
   */
  private $user;

  /**
   * @ORM\Id
   * @ORM\ManyToOne(targetEntity="Myproject\Bundle\QuestionsBundle\Entity\MetaInformationsQuestion")
   */
  private $metainformationsquestion;

  /**
   * @var datetime $created
   *
   * @Gedmo\Timestampable(on="create")
   * @ORM\Column(type="datetime")
   */
  private $created;

  /**
   * @var datetime $updated
   *
   * @Gedmo\Timestampable(on="update")
   * @ORM\Column(type="datetime")
   */
  private $updated;

  /**
   * @var array $score
   *
   * @ORM\Column(name="score", type="array", nullable="true")
   */
  private $score;

因此,该实体是与属性的多对多关系的链接。 (在这种情况下,分数和创建和更新日期)。

我的想法是添加每个用户所播放的每个问题的记录,以及他得到的分数。

我的问题是我收到了这个错误:

  

SQLSTATE [23000]:完整性约束违规:1062重复“PRIMARY”的重复条目“1-3”

所以我的问题是:如何将主要密钥的创建日期添加到主键中,或者只是删除事实以获得主键?

1 个答案:

答案 0 :(得分:1)

好的,我明白了,

我需要添加:

   * @ORM\Id

在我创建的字段中:

  /**
   * @var datetime $created
   *
   * @ORM\Id
   * @Gedmo\Timestampable(on="create")
   * @ORM\Column(type="datetime")
   */
  private $created;

它成就了我想要的东西!

以下是文档: https://doctrine-orm.readthedocs.org/en/latest/reference/annotations-reference.html#annref-id