单表多次查询PHP,php – Doctrine单表继承查询所有实例

我正在研究通知系统,所以我有一个通知抽象类和子类(forumPostNotification,privateMessageNotification等).它们使用单​​表继承存储,因此它们都在一个具有区分字段的表中.

我希望立即获得适用于用户的所有通知,而不必单独查询每种类型的通知,但是我不确定如何在DQL / symfony中执行此操作(在SQL中这很容易).

我将添加一些代码以便澄清:

Notification.php

/**

* Notification Class

*@ORM\Entity

* @ORM\InheritanceType("SINGLE_TABLE")

* @ORM\DiscriminatorColumn(name="type", type="string")

* @ORM\DiscriminatorMap({

* "notification"="Notification",

* "forumPostNotification"="ForumPostNotification",

* ...

* })

* @ORM\Table(name="notification")

*/

abstract class Notification

{

/**

* @ORM\ManyToOne(targetEntity="Acme\MainBundle\Entity\User", inversedBy="notifications")

* @ORM\JoinColumn(name="user_id", referencedColumnName="id")

*/

private $user;

//...

}

ForumPostNotification.php

/**

* Forum Post Notification

* @ORM\Entity

*/

class ForumPostNotification extends Notification

{

//..

}

PrivateMessageNotification.php

/**

* Private Message Notification

* @ORM\Entity

*/

class PrivateMessageNotification extends Notification

{

//..

}

我希望能够以这样或那样的方式做这样的事情(我明白我不能从Notification中查询,因为它是一个抽象类.我只是这样写它来传达我想要实现的东西):

$notifications = $em->createQuery('

SELECT n

FROM AcmeMainBundle:Notification n

WHERE n.dateDeactivated IS NULL

ORDER BY n.dateCreated ASC

')->getResult();

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值