2015-04-24 1 views
1

Я пытаюсь реализовать JMSPaymentCoreBundle, но я получаю эту ошибку ниже.JMSPaymentCoreBundle: get error when doctrine: schema: update --force

[Doctrine\ORM\Mapping\MappingException]                        
The target-entity CTC\Bundle\OrderBundle\Entity\JMSPaymentCore:PaymentInstruction cannot be found in 'CTC\Bundle\OrderBundle\Entity\Order#paymentInstruction'. 

Я что-то пропустил в документе? Возможно, существует несоответствие с namespacing или значением targetEntity, но я не понимаю.

Я также заметил, что после моей доктрины: генерировать: сущности, сеттер и геттер кажутся странными.

Любая идея? Я благодарю вас за вашу помощь.

Вот мой полный заказ лицо Класс:

<?php 
namespace CTC\Bundle\OrderBundle\Entity; 

use Doctrine\ORM\Mapping as ORM; 
use JMS\Payment\CoreBundle\Entity\PaymentInstruction; 

/** 
* Orders 
* 
* @ORM\Table(name="Orders") 
* @ORM\Entity(repositoryClass="CTC\Bundle\OrderBundle\Repository\OrdersRepository") 
*/ 
class Order 
{ 
    /** 
    * @var integer 
    * 
    * @ORM\Column(name="OrderID", type="integer") 
    * @ORM\Id 
    * @ORM\GeneratedValue(strategy="AUTO") 
    */ 
    private $id; 

    /** @ORM\OneToOne(targetEntity="JMSPaymentCore:PaymentInstruction") */ 
    private $paymentInstruction; 

    /** 
    * @var string 
    * 
    * @ORM\Column(name="OrderReference", type="string", length=100) 
    */ 
    private $reference; 

    /** 
    * 
    * @ORM\ManyToOne(targetEntity="CTC\Bundle\UserBundle\Entity\User", inversedBy="orders") 
    * @ORM\JoinColumn(name="UserID", referencedColumnName="id") 
    */ 
    private $user; 

    /** 
    * 
    * @ORM\ManyToOne(targetEntity="CTC\Bundle\CreditPackageBundle\Entity\CreditPackage") 
    * @ORM\JoinColumn(name="CreditPackageID", referencedColumnName="CreditPackageID") 
    */ 
    private $package; 


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

    /** 
    * Set reference 
    * 
    * @param string $reference 
    * @return Orders 
    */ 
    public function setReference($reference) 
    { 
     $this->reference = $reference; 

     return $this; 
    } 

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

    /** 
    * Set user 
    * 
    * @param \CTC\Bundle\UserBundle\Entity\User $user 
    * @return Order 
    */ 
    public function setUser(\CTC\Bundle\UserBundle\Entity\User $user = null) 
    { 
     $this->user = $user; 

     return $this; 
    } 

    /** 
    * Get user 
    * 
    * @return \CTC\Bundle\UserBundle\Entity\User 
    */ 
    public function getUser() 
    { 
     return $this->user; 
    } 

    /** 
    * Set package 
    * 
    * @param \CTC\Bundle\CreditPackageBundle\Entity\CreditPackage $package 
    * @return Order 
    */ 
    public function setPackage(\CTC\Bundle\CreditPackageBundle\Entity\CreditPackage $package = null) 
    { 
     $this->package = $package; 

     return $this; 
    } 

    /** 
    * Get package 
    * 
    * @return \CTC\Bundle\CreditPackageBundle\Entity\CreditPackage 
    */ 
    public function getPackage() 
    { 
     return $this->package; 
    } 

    /** 
    * Set paymentInstruction 
    * 
    * @param \CTC\Bundle\OrderBundle\Entity\JMSPaymentCore:PaymentInstruction $paymentInstruction 
    * @return Order 
    */ 
    public function setPaymentInstruction(\CTC\Bundle\OrderBundle\Entity\JMSPaymentCore:PaymentInstruction $paymentInstruction = null) 
    { 
     $this->paymentInstruction = $paymentInstruction; 

     return $this; 
    } 

    /** 
    * Get paymentInstruction 
    * 
    * @return \CTC\Bundle\OrderBundle\Entity\JMSPaymentCore:PaymentInstruction 
    */ 
    public function getPaymentInstruction() 
    { 
     return $this->paymentInstruction; 
    } 
} 

ответ

3

Вы ввели неправильный синтаксис пространства имен.

@ORM\OneToOne(targetEntity="JMSPaymentCore:PaymentInstruction") 

Короткий синтаксис с : здесь неприемлем.

Взгляните на свои другие объявления пространства имен и исправьте их полным пространством имен.

@ORM\ManyToOne(targetEntity="CTC\Bundle\CreditPackageBundle\Entity\CreditPackage") 

Нравится этот.

- Обновление -

Я считаю, что это должно быть полное пространство имен JMS\Payment\CoreBundle\Entity\PaymentInstruction

Смежные вопросы