Doctrine无法持久保存用户对象。
/**
* @Entity @Table(name="user")
*/
class User
{
/** @Id @Column(type="integer") @GeneratedValue **/
protected $id;
/** @Column(type="string") **/
public $Name;
/** @Column(type="string") **/
public $Picture;
/** @Column(type="string", length=50) **/
public $Phone;
/** @Column(type="date") **/
public $Birthdate;
/**
* @OneToMany(targetEntity="project", mappedBy="Owner")
*/
public $Projects;
/**
* @OneToOne(targetEntity="user")
* @JoinColumn(name="credentials_id", referencedColumnName="id")
*/
public $Credentials;
/**
* @OneToMany(targetEntity="skill", mappedBy="User_id")
*/
public $Experiences;
/** @Column(type="string", length=2500) **/
public $Motivation;
/** @Column(type="string", length=2500) **/
public $SoftSkills;
/** @Column(type="string") **/
public $Profession;
/** @Column(type="string") **/
public $EducationDegree;
public function __construct()
{
}
public function getId()
{
return $this->id;
}
}
在对实体管理器进行此调用之后,它将引发MappingException。
$this->entityManager->persist($this->user);
致命错误:未捕获的学说\ ORM \ Mapping \ MappingException: 在以下位置找不到目标实体Businessrelations \ Database \ project 'Businessrelations \ Database \ User#Projects
但是目前还没有注册项目。我是否必须以某种方式将其标记为可选?我还想知道用户和项目之间的“#”是什么意思。有人知道吗?
编辑
我按照相关主题中的建议将targetEntity属性更改为完全合格的类名。
我在github上找到了相应的源代码: https://github.com/doctrine/orm/blob/e1bb9e005d2676c42ec19521db9569a28da179d3/lib/Doctrine/ORM/Mapping/MappingException.php