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