【问题标题】:Symfony2 / Doctrine2 - Get rows not present in other side of relationSymfony2 / Doctrine2 - 获取关系另一侧不存在的行
【发布时间】:2012-07-31 13:37:52
【问题描述】:

我有 2 个实体,包括它的 setter 和 getter:

/**
 * @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() 的方法?

【问题讨论】:

    标签: php symfony doctrine-orm entity


    【解决方案1】:

    是的,你不见了

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

    【讨论】:

    • 嗨 mask8!感谢您的回复,但我已经设置了这个注释。我已经更新了代码,粘贴了真实的东西。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-03-22
    • 2023-03-16
    • 2014-04-21
    • 1970-01-01
    • 2014-10-06
    • 2014-01-11
    • 1970-01-01
    相关资源
    最近更新 更多