我在谷歌上阅读了this以及我发现的其他一些内容。
所以,自从Doctrine 2.1 - ,如果我理解正确 - Doctrine可以处理以外键为主键的表。
但是,这对我的桌子不起作用!
这是我生成的实体(app/console doctrine:mapping:convert annotation ./src --force
):
namespace VENDOR\MyBundle\Entity;
use Doctrine\ORM\Mapping as ORM;
/**
* ClientActivated
*
* @ORM\Table(name="client_activated")
* @ORM\Entity
*/
class ClientActivated
{
/**
* @var boolean
*
* @ORM\Column(name="activated", type="boolean", nullable=true)
*/
private $activated;
/**
* @var \VENDOR\MyBundle\Entity\Client
*
* @ORM\OneToOne(targetEntity="VENDOR\MyBundle\Entity\Client")
* @ORM\JoinColumns({
* @ORM\JoinColumn(name="ref_id_client", referencedColumnName="id_client", unique=true)
* })
*/
private $refClient;
}
当我clear:cache
时说:
[Doctrine \ ORM \ Mapping \ MappingException]没有标识符/主键 为实体“CDA \ SvBundle \ Entity \ FidClie ntAvantagesSv”指定。 每个实体都必须有一个标识符/主键。
我,当然,尝试在@ORM\Id
上添加$refClient
,删除JoinColumns
[...],但总是出现相同的错误消息我试着清除缓存!
(并且,如果您想知道,是的,我也尝试手动删除cache/*
个文件)