Php 我能';t存储主键值

Php 我能';t存储主键值,php,database,symfony,doctrine-orm,doctrine,Php,Database,Symfony,Doctrine Orm,Doctrine,我有一个问题,我有一个表(下载),有两个字段:令牌(主键)和值 我使用这些方法下载实体(仅显示令牌方法,值正确): 但是,当我在控制器中执行此操作时: $em = $this->getDoctrine()->getManager(); $Download = new Downloads(); $Download->setToken($token); $Download->setValid($now); $em->per

我有一个问题,我有一个表(下载),有两个字段:令牌(主键)和值

我使用这些方法下载实体(仅显示令牌方法,值正确):

但是,当我在控制器中执行此操作时:

$em = $this->getDoctrine()->getManager();
$Download = new Downloads();
        $Download->setToken($token);       
        $Download->setValid($now); 
$em->persist($Download); 
$em->flush();
对象创建得很好,但在我的数据库中Valid正确存储,而令牌存储为空

如果我看到这些值,util$em->flush();对象下载有两个正确的值,但在此之后,令牌(主键)将消失其值


我该怎么做?

您必须像这样为列创建自动增量

 /**
     * @ORM\Id
     * @ORM\Column(type="integer")
     * @ORM\GeneratedValue(strategy="AUTO")
     */
    protected $id;

愚蠢的回答,但你试过:

  • 正在清除Symfony缓存
  • 重新启动Apache

这可能与条令缓存有关。

尝试删除@ORM\GeneratedValue (strategy=“IDENTITY”),因为它是导致条令为令牌产生价值的因素。
希望有帮助:)

谢谢,但这不起作用。我有其他没有自动递增字段的表,工作正常。是的,谢谢,但这不是问题所在。我不知道在创建表的过程中是否有任何东西。。。
 /**
     * @ORM\Id
     * @ORM\Column(type="integer")
     * @ORM\GeneratedValue(strategy="AUTO")
     */
    protected $id;