2015-06-26 4 views
2

я есть расслоение CompanyBundle с: класс продукта с этим внутриSymfony2 Doctrine: переопределить аннотацию в классе наследования от другого расслоения

/** 
* @ORM\ManyToMany(targetEntity="CompanyBundle\Entity\ProductImage", inversedBy="listProduct") 
**/ 
private $listProductImage; 

и класс ProductImage, имеющий следующее:

/** 
* @ORM\ManyToMany(targetEntity="CompanyBundle\Entity\Product", mappedBy="listProductImage") 
*/ 
private $listProduct; 

но я также расширяю свой класс Продукт из другого ClinetBundle:

/** 
* @ORM\Entity(repositoryClass="ClientBundle\Entity\Repository\ClientProductRepository") 
*/ 
class ClientProduct extends Product 
{ 
    /** 
    * @ORM\ManyToMany(targetEntity="ClientBundle\Entity\ClientProductImage", inversedBy="listProduct") 
    **/ 
    private $listProductImage; 
} 

, но когда в моем контроллере я создаю класс объекта ClientProduct и пытаюсь получить к нему доступ ClientProductImage, он предоставляет класс из CompanyBundle, а не ClientBundle. так, как я могу сделать, чтобы получить ProductImage из ClientBundle?

это не нравится, если мой/** @ORM \ ManyToMany (targetEntity = "ClientBundle \ Entity \ ClientProductImage", inversedBy = "listProduct") **/делает ничего :(

спасибо за вашу помощь!

ответ

0

я, наконец, нашел решение.

Я не держу бесполезного отношения, определенные в ClientProduct. поэтому я удалил ManyToMany (targetEntity = "ClientBundle \ Entity \ ClientProductImage"

и после этого, я открываю Ed мое приложение/config.yml и добавьте resolve_target_entities:

doctrine: 
    ... 
    orm: 
     ... 
     resolve_target_entities: 
      CompanyBundle\Entity\ProductImage: ClientBundle\Entity\ClientProductImage 

все отлично работает, и я не нужно менять CompanyBundle :)