2017-09-08 51 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

數據庫設置正確 –