Ich bin für Slim 3 mit Lehre 2 als ORM arbeiten, aber ich behalte im Objektabbildungsabschnitt stecken zu bleiben, wenn ich versuche, eine bidirektionale Beziehung zu implementierenDie Anmerkung „@OneToMany“ in Hause wurde nie eingeführt (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();
}
}
ich erhalte eine Ausnahme, wenn ich versuche php vendor/bin/doctrine orm:schema-tool:update --force
Die Ausgabe lautet:
[Lehre \ Common \ Annotations \ AnnotationException] [Semantische Fehler] Die Anmerkung "@OneToMany" i Die Eigenschaft App \ Entity \ UserRoles :: $ users wurde nie importiert. Haben Sie vielleicht vergessen, für diese Anmerkung eine "use" -Anweisung hinzuzufügen?
Ich habe die Setzer und die Getter und jeweilige Bereiche entfernt Aufgrund Stackoverflow constraint Codetextverhältnisses –
Es ist „@ORM \ OneToMany“. Weitere Informationen finden Sie in den Verwendungshinweisen. –
Was @AlexBlex sagte. Sie vermissen auch '' @ORM \ '' für '' ManyToOne'' und '' JoinColumn'' –