我正在使用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 \'' –