2012-07-31 50 views
0

我有2个entites的另一侧不存在行,其getter和setter方法:的Symfony2/Doctrine2 - 获取有关

/** 
* @ORM\Entity 
* @ORM\Table(name="users") 
*/ 
class User 
{ 
    /** 
    * @ORM\Id 
    * @ORM\Column(type="integer") 
    * @ORM\GeneratedValue(strategy="AUTO") 
    */ 
    protected $id; 

    /** 
    * @ORM\ManyToMany(targetEntity="SRC\PurchaseBundle\Entity\Purchase", inversedBy="users") 
    * @ORM\JoinTable(name="user_purchases", 
    *  joinColumns={@ORM\JoinColumn(name="user_id", referencedColumnName="id")}, 
    *  inverseJoinColumns={@ORM\JoinColumn(name="purchase_id", referencedColumnName="id")} 
    *  ) 
    */ 
    protected $purchases; 

    ... 
} 


/** 
* @ORM\Entity 
* @ORM\Table(name="purchases") 
*/ 
class Purchase 
{ 
    /** 
    * @ORM\Column(type="integer") 
    * @ORM\Id 
    * @ORM\GeneratedValue(strategy="IDENTITY") 
    */ 
    protected $id; 

    /** 
    * @var users 
    * 
    * @ORM\ManyToMany(targetEntity="SRC\UserBundle\Entity\User", mappedBy="purchases") 
    */ 
    protected $users; 

    ... 
} 

我需要为用户选择所有缺少购买。 我已经通过逐个获取所有现有购买和检查来实现此目标,它们在$user->getPurchases()中不存在。

确实存在获得此结果的更好方法吗?

有没有办法让我可以在USER实体中创建一个名为getMissingPurchases()的方法?

回答

0

是的,你缺少

@ORM\JoinColumn(name="{name_of_column}", referencedColumnName="{name_of_fk_column}") 
+0

嗨mask8!感谢您的回复,但我已经设置了此注释。我已经更新了代码,粘贴了真实的东西。 – Xavi 2012-08-02 14:26:51