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;
所以我试图在 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;