【发布时间】:2015-01-21 09:48:50
【问题描述】:
我有类别表和制作表。两个表都由第三个 category_make 表关联,创建多对多关系。
/**
* @var \Doctrine\Common\Collections\Collection
*
* @ORM\ManyToMany(targetEntity="Ladisi\MotorsBundle\Entity\Make", inversedBy="catogory", fetch="EAGER")
* @ORM\JoinTable(name="catogory_make",
* joinColumns={
* @ORM\JoinColumn(name="catogory_id", referencedColumnName="cat_id")
* },
* inverseJoinColumns={
* @ORM\JoinColumn(name="make_id", referencedColumnName="make_id")
* }
* )
*/
private $make;
我想获得属于特定类别的品牌。我试过了,
$query = $em
->createQuery(
'SELECT c, m FROM LadisiMotorsBundle:Catagory c
JOIN c.make m
WHERE c.catId= :id'
)->setParameter('id', $id);
$result = $query->getResult();
但每次我只获得类别字段时,结果中都没有生成实体。我还尝试通过在类别对象上调用 getMakes 方法来获取结果,它也返回 null(不是实体,我猜是代理)。我该如何解决这个问题。任何帮助都会很棒。
【问题讨论】:
标签: php mysql symfony doctrine-orm