我读了这个和我在谷歌上找到的其他一些东西。
所以,从 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/*
手动删除文件)