订阅者

将类标记为可以侦听特定实体事件或任何实体事件的事件订阅者。使用QueryBuilder和存储库/管理器方法触发事件。例如:

  1. @EventSubscriber()
  2. export class PostSubscriber implements EntitySubscriberInterface<Post> {
  3. /**
  4. * 表示此订阅者仅侦听Post事件。
  5. */
  6. listenTo() {
  7. return Post;
  8. }
  9. /**
  10. * 插入post之前调用。
  11. */
  12. beforeInsert(event: InsertEvent<Post>) {
  13. console.log(`BEFORE POST INSERTED: `, event.entity);
  14. }
  15. }

你可以从EntitySubscriberInterface实现任何方法。要监听任何实体,你只需省略listenTo方法并使用any

  1. @EventSubscriber()
  2. export class PostSubscriber implements EntitySubscriberInterface {
  3. /**
  4. * 在实体插入之前调用。
  5. */
  6. beforeInsert(event: InsertEvent<any>) {
  7. console.log(`BEFORE ENTITY INSERTED: `, event.entity);
  8. }
  9. }