我正在尝试使用Doctrine 2的ZF2模块为我的数据库生成架构,但具有以下定义:
/**
* @ORM\ManyToMany(targetEntity="Tag")
* @ORM\JoinTable(name="Manytomany_Issuetag",
* @ORM\joinColumns={@ORM\JoinColumn(name="IssueId", referencedColumnName="id")},
* @ORM\inverseJoinColumns={@ORM\JoinColumn(name="TagId", referencedColumnName="id")}
* )
*/
protected $tags;
当我运行vendor/bin/doctrine-module orm:schema-tool:update --dump-sql
时,收到以下错误:
不允许在属性Application \ Entity \ Issue :: $ tags上声明注释@ORM \ joinColumns。您只能在这些代码元素上使用此注释:PROPERTY
编辑:根据要求,这是工作注释
/**
* @ORM\ManyToMany(targetEntity="Tag")
* @ORM\JoinTable(name="Manytomany_Issuetag",
* joinColumns={@ORM\JoinColumn(name="IssueId", referencedColumnName="id")},
* inverseJoinColumns={@ORM\JoinColumn(name="TagId", referencedColumnName="id")}
* )
*/
protected $tags;
答案 0 :(得分:2)
我认为您需要删除几个@ORM\
声明,它应该看起来像这样(显然没有我的评论)
/**
* @ORM\ManyToMany(targetEntity="Tag")
* @ORM\JoinTable(name="Manytomany_Issuetag",
* joinColumns={@ORM\JoinColumn(name="IssueId", referencedColumnName="id")},
* ^ drop the @ORM\
* inverseJoinColumns={@ORM\JoinColumn(name="TagId", referencedColumnName="id")}
* ^ drop the @ORM\
* )
*/
protected $tags;