Symfony 关系映射和实体生成器问题

Symfony 关系映射和实体生成器问题,symfony,doctrine-orm,Symfony,Doctrine Orm,我遇到了这样一种情况:当一个实体与另一个实体关联两次时,实体生成器任务不能正确地为相关实体创建“添加”函数。我想知道这是否是由于我没有正确定义关系造成的,或者这是一个bug?如果这只是一个发电机的问题,那么这不是什么大问题,但如果这对关系有意外的影响,那么这是一个大问题,我需要你的建议来确定发生了什么 简而言之,用户和消息有两次一对一的关系。消息实体有发送方和接收方,两者都是相关的用户对象。反过来,用户在其关系中拥有sentmessages和receivedmessages。用户端的sentme

我遇到了这样一种情况:当一个实体与另一个实体关联两次时,实体生成器任务不能正确地为相关实体创建“添加”函数。我想知道这是否是由于我没有正确定义关系造成的,或者这是一个bug?如果这只是一个发电机的问题,那么这不是什么大问题,但如果这对关系有意外的影响,那么这是一个大问题,我需要你的建议来确定发生了什么

简而言之,用户和消息有两次一对一的关系。消息实体有发送方和接收方,两者都是相关的用户对象。反过来,用户在其关系中拥有sentmessages和receivedmessages。用户端的sentmessages和receivedmessages设置程序未正确生成

我的yml看起来很简单:

Acme\DemoBundle\Entity\User:
  type: entity
  id:
    id:
      type: integer
      generator: { strategy: AUTO }
  fields:
    name:
      type: string
  oneToMany:
    sentmessages:
      targetEntity: Message
      mappedBy: user
    receivedmessages:
      targetEntity: Message
      mappedBy: user


Acme\DemoBundle\Entity\Message:
  type: entity
  id:
    id:
      type: integer
      generator: { strategy: AUTO }
  fields:
    body:
      type: string
    created_at:
      type: datetime
  manyToOne:
    sender:
      targetEntity: User
      inversedBy: sentmessages
      joinColumn:
        name: sender_id
        referencedColumnName: id
    receiver:
      targetEntity: User
      inversedBy: receivedmessages
      joinColumn:
        name: receiver_id
        referencedColumnName: id
正如您所看到的,用户和消息有两种关系。当我通过实体生成器任务生成实体时,它只创建了一个向用户添加消息的函数,但该函数不正确:

/**
 * Add sentmessages
 *
 * @param Acme\DemoBundle\Entity\Message $sentmessages
 */
public function addMessage(\Acme\DemoBundle\Entity\Message $sentmessages)
{
    $this->sentmessages[] = $sentmessages;
}
相反,它应该生成两个add函数,如下所示:

/**
 * Add sentmessages
 *
 * @param Acme\DemoBundle\Entity\Message $sentmessages
 */
public function addSentmessage(\Acme\DemoBundle\Entity\Message $sentmessages)
{
    $this->sentmessages[] = $sentmessages;
}

/**
 * Add receivedmessages
 *
 * @param Acme\DemoBundle\Entity\Message $receivedmessages
 */
public function addReceivedmessage(\Acme\DemoBundle\Entity\Message $receivedmessages)
{
    $this->receivedmessages[] = $receivedmessages;
}