我有一个Symfony2论坛应用程序,其中包括2个实体,即" User"和#34;对话"。对话总是只有2个人之间,我需要知道启动它的用户以及与之对话的用户。这被称为" userFrom"和" userTo"。我想映射" userFrom"用" id"来自"用户"的列和" userTo"来自" User"。
的相同列我做到了:
/**
* User
*
* @ORM\Table(name="app_users")
* @ORM\Entity(repositoryClass="Forum\CoreBundle\Repository\UserRepository")
*/
class User extends Timestampable implements UserInterface, \Serializable
{
/**
* @var ArrayCollection
*
* @ORM\OneToMany(targetEntity="Conversation", mappedBy="fromUser")
*/
private $conversationsFromUser;
/**
* @var ArrayCollection
*
* @ORM\OneToMany(targetEntity="Conversation", mappedBy="toUser")
*/
private $conversationsToUser;
}
和
/**
* Conversation
*
* @ORM\Table(name="conversation")
* @ORM\Entity(repositoryClass="Forum\CoreBundle\Repository\ConversationRepository")
*/
class Conversation extends Timestampable
{
/**
* @var User
*
* @ORM\ManyToOne(targetEntity="User", inversedBy="$conversationsFromUser")
* @ORM\JoinColumn(name="id_from_user", referencedColumnName="id", nullable=false)
* @Assert\NotBlank
*/
private $fromUser;
/**
* @var User
*
* @ORM\ManyToOne(targetEntity="User", inversedBy="$conversationsToUser")
* @ORM\JoinColumn(name="id_to_user", referencedColumnName="id", nullable=false)
* @Assert\NotBlank
*/
private $toUser;
}
但Symfony2抱怨说"映射彼此不一致"。 当我要求时,我想要那个:
$ user-> getConversationsFromUser()获取该用户启动的所有会话的列表
$ user-> getConversationsToUser()获取该用户的所有会话列表
$ conversation-> getFromUser()以获取启动该会话的用户
$ conversation-> getToUser()以获取发送对话的用户
是否可以使用Doctrine2映射我想要的内容?
答案 0 :(得分:1)
inversedBy =" $ conversationsFromUser" => inversedBy =" conversationsFromUser"
" $" !!!