Php 生成的Id始终为0

Php 生成的Id始终为0,php,doctrine-orm,Php,Doctrine Orm,我已声明我的实体Id: /** * @ORM\Id @ORM\Column(type="integer") @ORM\GeneratedValue */ protected $id; 但每次我尝试在表单后将其保存到数据库时,都会得到“0”,这会导致:完整性约束冲突:1062键“PRIMARY”的重复条目“0” 我的存储逻辑如下所示: public function CallManager($data) { $callRequested= new CallRequest

我已声明我的实体Id:

 /**
 * @ORM\Id @ORM\Column(type="integer") @ORM\GeneratedValue
 */
 protected $id;
但每次我尝试在表单后将其保存到数据库时,都会得到“0”,这会导致:
完整性约束冲突:1062键“PRIMARY”的重复条目“0”

我的存储逻辑如下所示:

public function CallManager($data) 
    {
    $callRequested= new CallRequested;
    $callRequested-> setClientContact($data['clientContact']);
    $callRequested-> setProvider($data['provider']);
    $callRequested-> setCallCenter($data['callCenterContact']);
    $whenCall= $data['schedule'];
    $language= $data['language'];
    $date = new \DateTime();
    $callRequested-> setRequestTime($date);

    var_dump($data);

    $this->entityManager->persist($callRequested);
    $this->entityManager->flush();

    }

我该怎么办?

您需要告诉它您希望它像这样自动递增:

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

您确定一行代码将帮助其他人理解您的问题并为您提供正确的解决方案吗。我们不是这里的亡灵巫师。请提供更多详情。我以前也遇到过同样的问题,也尝试过序列(不起作用)和标识。当你在玩这个时,你是否将这些更改反映到数据库中?如果我没有弄错的话,所有这些最终都会转换为SQL创建/更改查询。您可以通过查看数据库中的表,特别是ID字段的设置来检查它是否得到反映。它应该有自动递增设置,是一个适当的数字类型etcWe将需要更多的信息,在这种情况下,我想。你能把完整的实体和数据库结构添加到你的问题中吗?我发现了一个错误,它没有设置为“自动增量”。太好了,你应该检查一下-这应该允许你比较你的实体和数据源结构,生成并执行相应的命令,以确保两者保持同步。换句话说,迁移自动化了数据源管理,因此您只需关注您的实体,就可以避免类似这样的错误。