我有一个捆绑包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:)