如何在Doctrine2中的联接表中添加其他列?

演员

我想创建一个通知系统。有一个Notification课。通知可以分配给多个用户,而不仅仅是一个。

有一个联合表user_notifications,有两列:user_idnotification_id

$notifications用户类中的定义是这样的:

/**
 * @ManyToMany(targetEntity="Notification")
 * @JoinTable(name="user_notifications",
 *      joinColumns={@JoinColumn(name="user_id", referencedColumnName="id")},
 *      inverseJoinColumns={@JoinColumn(name="notification_id", referencedColumnName="id", unique=true)}
 *      )
 **/
private $notifications;

一切正常。但是user_notifications,无论通知是否由给定的用户读取,我都想表中添加一个新列,并将其存储在表中。我应该如何在教义2中管理它?

标记

您将必须重构您的实体以引入一个新实体,并将user_notifications邻接表转换为一个实体。

解决方案

按如下所示变换您的表: 在此处输入图片说明

然后重构您的关联,如下所示:

用户实体

...
/**
 * @OneToMany(targetEntity="UserNotification", mappedBy="notification_id")
 **/
private $notifications;

通知实体

...
/**
 * @OneToMany(targetEntity="UserNotification", mappedBy="user_id")
 **/
private $users;

用户通知实体

/** @Entity **/
class UserNotification {
...
/**
 * @ManyToOne(targetEntity="User", inversedBy="notifications")
 * @JoinColumn(name="user_id", referencedColumnName="id")
 **/
private $user_id;

/**
 * @ManyToOne(targetEntity="Notification", inversedBy="users")
 * @JoinColumn(name="notification_id", referencedColumnName="id")
 **/
private $notification_id;

/** @Column(type="boolean") */
private $read;

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在查询中添加其他联接

如何在Sequelize中对联接表上的其他列进行ORM?

如何在Laravel中的数据透视表中添加其他列关系

如何在doctrine2 queryBuilder中实现ON(... OR ...)mysql查询

如何在Laravel中将数据添加到数据透视表中的其他列

如何在Sqlite的数据库表中添加其他列?

如何在运行时根据其他表中的值添加新列?

如何在Sqlite中删除表内部与其他表的联接?

如何在Django QuerySet中添加其他列

如何在PostgreSQL中插入其他表的列

如何在Laravel中使用其他表中的列

将其他联接添加到SQL中已联接的表中

如何使用内部联接从其他表中获取记录

如何在我的数据表中添加一列以显示多个其他列的值的总和?

从联接表中添加列

如何根据其他表中的其他关系从 1 列中选择 2 个数据

如何在 jquery 中的表中添加新的“顶”行而不删除其他行

在Doctrine中左联接ON条件和其他条件语法

如何在Doctrine2中没有@Column注释的实体的属性中搜索?

Doctrine2:处理引用表中额外列的多对多的最佳方法

MySQL在我的表中添加了其他列,如何更新表

如何联接表并根据其他两个列中的最新日期和条件显示列?

如何从Doctrine2单表继承存储库中获得混合对象类型结果集?

如何在Laravel的其他2个联接表上按日期排序表?

Doctrine2 + Symfony2:如何在Symfony2中使用命名空间的Doctrine实体?

如何在Hive中使用其他表中的特定列值创建表

如何在Jetty用户表中添加和使用其他字段?

如何在数据库查询填充的选项表中添加其他选项

如何在添加记录之前检查其他表中是否存在外键