Symfony1 Symfony私人消息

Symfony1 Symfony私人消息,symfony1,doctrine,symfony-1.4,private-messaging,Symfony1,Doctrine,Symfony 1.4,Private Messaging,我想在我的网站上发送私人消息。我希望用户可以删除收到或发送的消息。对于它,我需要两个表,一个用于发送消息,一个用于接收…当用户发送消息时,它是否可能自动添加两个表?还是最好与表建立一些关系?或者可能存在更好的解决方案?也许,您应该创建一个消息表,与用户表有两个关系: message: columns: user_emitter_id: ... user_reciever_id: ... body: ... relations: userEmitter:

我想在我的网站上发送私人消息。我希望用户可以删除收到或发送的消息。对于它,我需要两个表,一个用于发送消息,一个用于接收…当用户发送消息时,它是否可能自动添加两个表?还是最好与表建立一些关系?或者可能存在更好的解决方案?

也许,您应该创建一个消息表,与用户表有两个关系:

message:
  columns:
    user_emitter_id: ...
    user_reciever_id: ...
    body: ...
  relations:
    userEmitter:
      class: user
      local: user_emitter_id
      foreign: id
    userReciever:
      class: user
      local: user_reciever_id
      foreign: id

也许,您应该创建一个消息表,与用户表有两个关系:

message:
  columns:
    user_emitter_id: ...
    user_reciever_id: ...
    body: ...
  relations:
    userEmitter:
      class: user
      local: user_emitter_id
      foreign: id
    userReciever:
      class: user
      local: user_reciever_id
      foreign: id

有一个symfony插件可以让你做到这一点。检查。

有一个symfony插件允许您执行此操作。检查。

我想您只需要一张桌子:

Message:
  columns:
    from: integer
    to: integer
    header:  string(100)
    body:    blob
    show_in_outcoming: 
      type: boolean
      default: true
    show_in_incoming: 
      type: boolean
      default: true
    is_read:  
      type: boolean
      default: false
  UserFrom:
    class: sfGuardUser
    local: from
    foreign: id
    foreignType: one
    type: one
  UserTo:
    class: sfGuardUser
    local: to
    foreign: id
    foreignType: one
    type: one
在哪里

  • is_read表示消息是否已被读取(false-未读,true-已读-仅适用于传入消息)
如果发送消息的用户想要删除它,我们只需隐藏它(而不是从数据库中删除)-将show_in_outcoming设置为false。
如果收到消息的用户想要删除它,我们也会隐藏它-将show_in_incoming设置为false。这种方法允许我们恢复“隐藏”的消息(或完全删除它们)

我认为您只需要一个表:

Message:
  columns:
    from: integer
    to: integer
    header:  string(100)
    body:    blob
    show_in_outcoming: 
      type: boolean
      default: true
    show_in_incoming: 
      type: boolean
      default: true
    is_read:  
      type: boolean
      default: false
  UserFrom:
    class: sfGuardUser
    local: from
    foreign: id
    foreignType: one
    type: one
  UserTo:
    class: sfGuardUser
    local: to
    foreign: id
    foreignType: one
    type: one
在哪里

  • is_read表示消息是否已被读取(false-未读,true-已读-仅适用于传入消息)
如果发送消息的用户想要删除它,我们只需隐藏它(而不是从数据库中删除)-将show_in_outcoming设置为false。
如果收到消息的用户想要删除它,我们也会隐藏它-将show_in_incoming设置为false。此方法允许我们恢复“隐藏”消息(或完全删除它们)

但当用户删除例如接收消息时,发送此消息的用户也将删除此消息。请勿删除消息。。。只需将user_receiver_id或user_emitter设置为null.hm,这样好吗,不要从数据库中删除消息?嗯,我想我应该这样做。但是当用户删除例如接收消息时,它也会删除发送此消息的用户。不要删除消息。。。只需将user_receiver_id或user_emitter设置为null.hm,这样好吗,不要从数据库中删除消息?嗯,我想我应该这样做。谢谢你!我现在,我现在使用这个插件,但它并不完全是我需要的。现在我禁用了除私人消息之外的所有功能,但在发送消息之前,您需要发送“好友请求”,并且无法删除消息/并且sfDoctrineGuard和sfSocial之间存在一些小冲突…因此我想编写我自己的简单pm)谢谢!我现在,我现在使用这个插件,但它并不完全是我需要的。现在我禁用了除私人消息之外的所有功能,但在发送消息之前,您需要发送“好友请求”,并且无法删除消息/并且sfDoctrineGuard和sfSocial之间存在一些小冲突…因此我想编写我自己的简单pm)谢谢!什么是类型字段?列类型告诉我们消息是收入消息还是支出消息。此列将自动添加到创建表
message
SQL查询(如果正在生成)键入VARCHAR(255)。这就是列聚合继承如何知道数据库中每条记录所属的模型。我不太了解条令表继承(我也不明白它是如何工作的)我有一个表,但有三个模型。我想为消息生成一个模块,我需要为消息表生成一个模块?我将在我的DB中为一条消息生成一条记录,对于一个用户,它将输出,对于其他传入…我想,我理解你。我对我的答案稍作修改。是的,这是真的,但我认为还需要一个专栏,is_readSender,is_readRecipiend…?谢谢!什么是类型字段?列类型告诉我们消息是收入消息还是支出消息。此列将自动添加到创建表
message
SQL查询(如果正在生成)键入VARCHAR(255)。这就是列聚合继承如何知道数据库中每条记录所属的模型。我不太了解条令表继承(我也不明白它是如何工作的)我有一个表,但有三个模型。我想为消息生成一个模块,我需要为消息表生成一个模块?我将在我的DB中为一条消息生成一条记录,对于一个用户,它将输出,对于其他传入…我想,我理解你。我稍微改变了我的答案。是的,这是真的,但我认为还需要一个专栏,is_readSender,is_readRecipiend。。。?