Symfony2原则:重新定义来自另一个bundle的继承类中的注释



我有一个捆绑包CompanyBundle,包含:在中有这个的一类产品

/**
 * @ORMManyToMany(targetEntity="CompanyBundleEntityProductImage", inversedBy="listProduct")
 **/
private $listProductImage;

以及一个类ProductImage,该类具有:

/**
 * @ORMManyToMany(targetEntity="CompanyBundleEntityProduct", mappedBy="listProductImage")
 */
private $listProduct;

但我也从另一个ClinetBundle扩展了我的类产品,比如

/**
 * @ORMEntity(repositoryClass="ClientBundleEntityRepositoryClientProductRepository")
 */
class ClientProduct extends Product
{
    /**
     * @ORMManyToMany(targetEntity="ClientBundleEntityClientProductImage", inversedBy="listProduct")
     **/
    private $listProductImage;
}

但是,当我在控制器中构建一个ClientProduct对象类,并尝试从中访问ClientProductImage时,它是从CompanyBundle而不是ClientBundle中提供该类的。那么,我该如何从ClientBundle中获取ProductImage呢?

这就像我的/**@ORM\ManyToMany(targetEntity="ClientBundle\Entity\ClientProductImage",invertedBy="listProduct")***/什么都没做:(

谢谢你的帮助!

我终于找到了解决方案。

我不保留ClientProduct中定义的无用关系。所以我删除了ManyToMany(targetEntity="ClientBundle\Entity\ClientProductImage"

之后,我打开我的app/config.yml并添加resolve_target_entities:

doctrine:
    ...
    orm:
        ...
        resolve_target_entities:
           CompanyBundleEntityProductImage: ClientBundleEntityClientProductImage

所有操作都很好,我不需要更改CompanyBundle:)

相关内容

最新更新