Symfony Entity类为ManyToMany关系表

时间:2017-03-20 13:35:56

标签: symfony doctrine-orm annotations many-to-many

这是我看到的常见问题。目前我还没有找到从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;
...

0 个答案:

没有答案