这是我看到的常见问题。目前我还没有找到从M2M关系中使用的关系表中制作实体的解决方案。
我想问你是否知道将来会支持,或者解决方案仍然可用。
这是我试图做的。
应代表关系表的实体
/**
* @ORM\Table(name="users_research_keywords")
* @ORM\Entity
*/
class UsersResearchKeywords
{
/**
* @var integer
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
/**
* @var integer
*
* @ORM\Column(name="researchkeywords_id", type="integer")
*/
private $keyword;
/**
* @var integer
*
* @ORM\Column(name="user_id", type="integer")
*/
private $user;
/**
* Get id
*
* @return integer
*/
public function getId()
{
return $this->id;
}
/**
* Get keyword
*
* @return integer
*/
public function getKeyword()
{
return $this->keyword;
}
/**
* Get user
*
* @return integer
*/
public function getUser()
{
return $this->user;
}
}
关键字实体
...
/**
* @ORM\ManyToMany(targetEntity="MainBundle\Entity\User", mappedBy="keywords", cascade={"persist"})
*
* @ORM\JoinTable(name="users_research_keywords",
* joinColumns={@ORM\JoinColumn(name="researchkeywords_id", referencedColumnName="id")},
* inverseJoinColumns={@ORM\JoinColumn(name="user_id", referencedColumnName="id")}
* )
*/
private $users;
...
用户实体
...
/**
* @ORM\ManyToMany(targetEntity="SciProfileBundle\Entity\ResearchKeywords", inversedBy="users", cascade={"persist"})
*
* @ORM\JoinTable(name="users_research_keywords",
* joinColumns={@ORM\JoinColumn(name="user_id", referencedColumnName="id")},
* inverseJoinColumns={@ORM\JoinColumn(name="researchkeywords_id", referencedColumnName="id")}
* )
*/
private $keywords;
...