我在Doctrine和Symfony2上遇到了这个错误:
无法解析列的类型" id" class" ST \ UserBundle \ Entity \ User"
统计
class Statistique
{
// ...
// @ORM\ManyToOne(targetEntity="ST\UserBundle\Entity\User")
// @ORM\JoinColumn(name="idPro", referencedColumnName="id")
private $user;
}
用户
use FOS\UserBundle\Model\User as BaseUser;
// @ORM\Table(name="tiers_prov3")
class User extends BaseUser
{
/**
* @ORM\Column(name="TIE_ID", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="NONE")
*/
protected $id;
// ...
}
我无法弄清楚。
答案 0 :(得分:16)
User类中$ id属性的列名是“TIE_ID”。因此,请尝试在Statistic类中使用此名称而不是id:
/**
* @var string
*
* @ORM\ManyToOne(targetEntity="ST\UserBundle\Entity\User")
* @ORM\JoinColumn(name="idPro", referencedColumnName="TIE_ID") <== here
*/
private $user;
在Doctrine注释中,列名称(如@ORM\Column(name="x"...)
和@ORM\JoinColumn(name="y", referencedColumnName="x" ...)
)是真正的数据库列名。