2013-08-31 6 views
0

내가 결제 세트 업의 payumBundle을 사용하고하지만 난이 오류가 점점 계속 :는 Payum 중복 항목을 '0'에 대한 키 'PRIMARY'

Duplicate entry '0' for key 'PRIMARY' 

을 내가

/** 
* @ORM\Table(name="payum_tokenized_details") 
* @ORM\Entity 
*/ 
class TokenizedDetails extends BaseTokenizedDetails 
{ 

    protected $id; 

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


} 

/** 
* @ORM\Table(name="payum_paypal_express_checkout_payment_details") 
* @ORM\Entity 
*/ 
class PaypalExpressPaymentDetails extends PaymentDetails 
{ 
    /** 
    * @ORM\Id 
    * @ORM\Column(type="integer") 
    * @ORM\GeneratedValue(strategy="AUTO") 
    */ 
    protected $id; 

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


} 
를 사용하고 그 다음은 내 수업을하다

내가 검색을 시도했지만 나는 해결책을 찾을 수 없습니다, 일반적으로이 때문에 기본 키이다, 그러나 그 모든 올바르게 설정

+0

이 오류는 데이터베이스가 데이터 구조의 정의를 위반하여 데이터를 거부 함을 의미합니다. 잘못된 ID를 어딘가에서 제공했을 가능성이 큽니다 (0). 일반적으로 0은 PRIMARY KEY (PK)의 값이 아닙니다. 귀하의 경우에는 가치가 이미 데이터베이스 내부에 있으며, 이는 근본적인 근본적인 문제가 있음을 보여줍니다. 복제본뿐만 아니라 이미 존재하는 것입니다. 다른 테스트 시스템에서 마지막으로 수행 한 백업을 복원하고 결함이있는 데이터베이스 항목을 다시 작성하십시오. – hakre

+0

고맙습니다. 아주 좋은 설명입니다. 내가 어디를 찾아야할지 알고 있습니다. –

답변

0

이 때문에 TokenizedDetails 엔티티는 id 필드가 없어야합니다 에 ken one (고유 한)이며 이미 매핑되었습니다. https://github.com/Payum/PayumBundleSandbox/blob/master/src/Acme/PaymentBundle/Entity/TokenizedDetails.php

그리고 매핑 : https://github.com/Payum/Payum/blob/master/src/Payum/Bridge/Doctrine/Resources/mapping/TokenizedDetails.orm.xml

에주의를 필드의 ID로 정의 토큰을

는 샌드 박스에 정의하는 방법을 참조하십시오.

+0

0.6.0부터 TokenizedDetails는 더 이상 사용되지 않으며 0.7에서 제거되었습니다. 이제 토큰 모델을 사용해야합니다. 이전의'token' 필드는'hash'로 이름이 바뀌 었습니다. –