2017-12-05 4 views
0

나는 약간의 자동차를 만든 SQL 파일로 채워지는 cardb이라는 데이터베이스를 가지고 있습니다. ID가 1에서 30까지입니다. 새 자동차를 만들려고 할 때 처음으로 작동하고 ID 0 인 자동차를 만들고 다시 시도 할 때 다시 0으로 항목을 만들려고 시도합니다.심포니 자동 증가 ID

여기 PARAMS로 '(??) (모델 TravelledDistance 확인) 값 차 삽입 반'실행 중에

예외가 발생한 오류이다 "폭 상태", "폭 상태"320]

SQLSTATE [23000] : 키 'PRIMARY'

에 대한 1062 중복 항목을 '0': 무결성 제약 조건 위반 16,

여기 내 기업

/** 
* Cars 
* 
* @ORM\Table(name="cars") 
* @ORM\Entity(repositoryClass="AppBundle\Repository\CarsRepository") 
*/ 
class Cars 
{ 
    /** 
    * @var int 
    * 
    * @ORM\Column(name="id", type="integer") 
    * @ORM\Id 
    * @ORM\GeneratedValue(strategy="AUTO") 
    */ 
    private $id; 

    /** 
    * @var string 
    * 
    * @ORM\Column(name="Make", type="string", length=255) 
    */ 
    private $make; 

    /** 
    * @var string 
    * 
    * @ORM\Column(name="Model", type="string", length=255) 
    */ 
    private $model; 

    /** 
    * @var int 
    * 
    * @ORM\Column(name="TravelledDistance", type="bigint") 
    */ 
    private $travelledDistance; 

    /** 
    * @ORM\ManyToMany(targetEntity="AppBundle\Entity\Parts", inversedBy="cars") 
    * @ORM\JoinTable(
    * name="PartCars", 
    * joinColumns={ 
    *  @ORM\JoinColumn(name="Part_Id", referencedColumnName="id") 
    * }, 
    * inverseJoinColumns={ 
    *  @ORM\JoinColumn(name="Car_Id", referencedColumnName="id") 
    * }) 
    */ 
    private $parts; 
    /** 
    * Get id 
    * 
    * @return int 
    */ 
    public function getId() 
    { 
     return $this->id; 
    } 

    /** 
    * Set make 
    * 
    * @param string $make 
    * 
    * @return Cars 
    */ 
    public function setMake($make) 
    { 
     $this->make = $make; 

     return $this; 
    } 

    /** 
    * Get make 
    * 
    * @return string 
    */ 
    public function getMake() 
    { 
     return $this->make; 
    } 

    /** 
    * Set model 
    * 
    * @param string $model 
    * 
    * @return Cars 
    */ 
    public function setModel($model) 
    { 
     $this->model = $model; 

     return $this; 
    } 

    /** 
    * Get model 
    * 
    * @return string 
    */ 
    public function getModel() 
    { 
     return $this->model; 
    } 

    /** 
    * Set travelledDistance 
    * 
    * @param integer $travelledDistance 
    * 
    * @return Cars 
    */ 
    public function setTravelledDistance($travelledDistance) 
    { 
     $this->travelledDistance = $travelledDistance; 

     return $this; 
    } 

    /** 
    * Get travelledDistance 
    * 
    * @return int 
    */ 
    public function getTravelledDistance() 
    { 
     return $this->travelledDistance; 
    } 

    /** 
    * @return mixed 
    */ 
    public function getParts() 
    { 
     return $this->parts; 
    } 

} 

그것은 자동으로 자동 증가 주석이 엔티티를 생성입니다.

무엇이 문제 일 수 있습니까?

+1

테이블 cars 열 id가 실제로 AUTO_INCREMENT 옵션을 사용하여 생성되었는지 확인하십시오 ... 'SHOW CREATE TABLE cars' –

답변

3

* @ORM\GeneratedValue(strategy="AUTO") 

는 PHP 고유 ID를 생성하지 않습니다 주석. insert 문에서 PHP가 ID 값을 제공하지 않는다는 것을 알 수 있습니다.

이 주석은 ORM에게 어떤 종류의 열인지 알려주지 만 값을 생성하는 데이터베이스에 따라 달라집니다. 제대로 잘되는, 오히려 doctrine:schema:update을 사용하는 것보다 손으로 cars 테이블을 생성한다는 것을 의미 코드를 보이는 방법을 바탕으로 You can check the documentation for more details.

, 당신에게 used the console to generate the entity 나타납니다,하지만 난 데이터베이스 ID를하고 있지 않다는 사실을 가정 그게 당신이 필요로하는 방식이라면/할 수 있지만, id 열을 자동 증가 시키려면 테이블을 변경해야합니다.