Symfony2 Doctrine:从另一个包

时间:2015-06-26 17:44:12

标签: symfony inheritance annotations doctrine

我有一个捆绑的CompanyBundle: 一个具有此内部的产品

/**
 * @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提供类。那么,我怎样才能从ClientBundle获取ProductImage?

就好像我的/ ** @ORM \ ManyToMany(targetEntity =“ClientBundle \ Entity \ ClientProductImage”,inversedBy =“listProduct”)** /什么都不做:(

感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

我终于找到了解决方案。

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

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

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

一切正常,我不需要更改CompanyBundle:)