我正在使用Doctrine 2作为Slim 3的ORM,但当我尝试实现双向关系时,我一直陷在对象映射部分中属性中的注释“@OneToMany”从未导入(Doctrine2)
/**
* Class Resource
* @package App
* @ORM\Entity
* @ORM\Table(name="users", uniqueConstraints={@ORM\UniqueConstraint(name="user_id", columns={"user_id"})}))
*/
class User
{
/**
* @ORM\ManyToOne(targetEntity="UserRoles", inversedBy="users")
* @ORM\JoinColumn(name="role_id", referencedColumnName="user_role_id")
*/
protected $user_role;
}
/**
* Class Resource
* @package App
* @ORM\Entity
* @ORM\Table(name="user_roles", uniqueConstraints={@ORM\UniqueConstraint(name="user_role_id", columns={"user_role_id"})}))
*/
class UserRoles
{
/**
* @ORM\OneToMany(targetEntity="User", mappedBy="user_role")
*/
protected $users;
public function __construct()
{
$this->users = new ArrayCollection();
}
}
我得到一个异常,当我尝试php vendor/bin/doctrine orm:schema-tool:update --force
输出是:
[主义\ COMMON \注解\ AnnotationException] [语义错误]注释 “@OneToMany” 我n属性App \ Entity \ UserRoles :: $用户从未导入。你可能忘记为这个注释添加一个“使用”语句吗?
我已删除由于计算器的码约束到文本比setter和getter和各个字段 –
它是“@ORM \一对多”。有关详细信息,请参阅您的'use'语句。 –
@AlexBlex表示。你也缺少''ManyToOne''和''JoinColumn''的@ORM \'' –