Symfony2 Doctrine 一对一映射

Symfony2 Doctrine one to one mapping

所以我试图在 Symfony2 中与 Doctrine 建立一对一的关系,但我收到以下错误:

An exception has been thrown during the rendering of a template ("Could not resolve type of column "id" of class "IntoPeople\DatabaseBundle\Entity\Feedbackcycle"") in IntoPeopleDatabaseBundle:Feedbackcycle:index.html.twig at line 65.

我有两个实体,Feedbackcycle 和 CDP。在 Feedbackcycle 中我有:

     /**
     * @var \IntoPeople\DatabaseBundle\Entity\Cdp
     *
     * @ORM\OneToOne(targetEntity="IntoPeople\DatabaseBundle\Entity\Cdp", inversedBy="feedbackcycle")
     * @ORM\JoinColumns({
     *   @ORM\JoinColumn(name="CDPId", referencedColumnName="Id")
     * })
     */
    private $cdp;


     /**
     * Set cdp
     *
     * @param \IntoPeople\DatabaseBundle\Entity\Cdp $cdp
     *
     * @return Feedbackcycle
     */
    public function setCdp(\IntoPeople\DatabaseBundle\Entity\Cdp $cdp = null)
    {
        $this->cdp = $cdp;

        return $this;
    }

    /**
     * Get cdp
     *
     * @return \IntoPeople\DatabaseBundle\Entity\Cdp
     */
    public function getCdp()
    {
        return $this->cdp;
    }

在 CDP 中我有:

     /**
     * @ORM\OneToOne(targetEntity="Feedbackcycle")
     */
    protected $feedbackcycle;

     /**
     * Set feedbackcycle
     *
     * @param \IntoPeople\DatabaseBundle\Entity\Feedbackcycle $feedbackcycle
     *
     * @return Cdp
     */
    public function setFeedbackcycle(\IntoPeople\DatabaseBundle\Entity\Feedbackcycle $feedbackcycle = null)
    {
        $this->feedbackcycle = $feedbackcycle;

        return $this;
    }

    /**
     * Get feedbackcycle
     *
     * @return \IntoPeople\DatabaseBundle\Entity\Feedbackcycle
     */
    public function getFeedbackcycle()
    {
        return $this->feedbackcycle;
    }

所以在我的树枝中我可以这样做:

{{ feedbackcycle.cdp.id }}

这会起作用,或者我也可以做 feedbackcycle.name(任何属性),它会起作用。但是当我做

{{ feedbackcycle.cdp.*ANOTHER ATTRIBUTE* }}

我会得到错误。

解决了,CDP里面忘记写mappedBy了:

/**
 * @ORM\OneToOne(targetEntity="Feedbackcycle", mappedBy="cdp")
 */
protected $feedbackcycle;