2017-09-08 53 views
0

我宣布我的实体的ID:生成的ID总是0

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

但每次我尝试它我的数据库表格后保存,我得到“0”,其结果得出:Integrity constraint violation: 1062 Duplicate entry '0' for key 'PRIMARY'

我存储逻辑如下:

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(); 

    } 

我该怎么办?

+0

你确定一行代码是要帮助别人理解你的问题,给你正确的解决方案。我们在这里不是NECROMANCER。请提供更多细节。 [阅读如何问一个很好的问题](https://stackoverflow.com/help/how-to-ask) –

回答

1

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

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

我曾经那样,并仍然是同样的问题,尝试与序列(不工作)和身份 –

+0

当你在玩这个时,你是否反映了这些DB的变化?如果我没有弄错,所有这些都最终转化为SQL CREATE/ALTER查询。您可以通过查看数据库中的表格来检查它是否反映出来,特别是ID字段的设置。它应该有自动增量设置和适当的数字类型等 – Bananaapple

+0

数据库设置正确 –