如何在Doctrine2 targetEntity映射中使用不同的命名空间类

Jay*_*son 4 doctrine-orm

当我设置ManytoOne映射时,虽然两个类在同一个命名空间中,但它的工作原理.

但如果两个类在不同的命名空间中,它将无法工作?

/**
 * @ORM\ManyToOne(targetEntity="OP\ProjectBundle\Entity\Project", inversedBy="tickets")
 * @ORM\JoinColumn(name="project_id", referencedColumnName="id")
 */
protected $project;
Run Code Online (Sandbox Code Playgroud)

mkr*_*mer 8

您必须使用目标实体的绝对命名空间 - 请注意其名称中的前导退格.

/**
 * @ORM\ManyToOne(targetEntity="\OP\ProjectBundle\Entity\Project", inversedBy="tickets")
 * @ORM\JoinColumn(name="project_id", referencedColumnName="id")
 */
protected $project;
Run Code Online (Sandbox Code Playgroud)

  • 对于其他发现此问题的人,请注意Doctrine文档现在指定省略前导斜杠:http://docs.doctrine-project.org/en/latest/reference/annotations-reference.html#manytoone (4认同)