教义中的多态单向关系就像在Eloquent中一样?

时间:2016-10-20 20:40:05

标签: symfony doctrine-orm

我的网站上有通知,每条通知都可以单向与帖子或视频相关。

我们需要显示网站的所有通知,并为每一个显示有关相关实体(照片或视频)的一些信息。我永远不需要获得与视频相关的所有通知,这就是为什么它是单向的。

在Eloquent(Laravel)中,我们可以这样做:https://laravel.com/docs/5.3/eloquent-relationships#polymorphic-relations

posts
    id - integer
    title - string
    body - text

videos
    id - integer
    title - string
    url - string

notifications
    id - integer
    body - text
    notificationable_id - integer
    notificationable_type - string

现在,如何在Sytrfony的Doctrine中做同样的事情?

我希望最终能够达到这样的代码:

interface NotificationableInterface {}

class Video implements NotificationableInterface {}
class Post implements NotificationableInterface {}

class Notification {
    ....
    /**
     * @return NotificationableInterface
     */
    public function getRelatedEntity() {
    }

是否可以使用Doctrine以及如何实现它?

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

您可以使用Doctrine的Single Table InheritanceClass Table Inheritance来实现您的目标。