Я работаю с Doctrine 2 как ORM для Slim 3, но я продолжаю застревать в разделе сопоставления объектов, когда пытаюсь реализовать двунаправленное отношение.Аннотации «@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] [Семантическая Error] аннотаций "@OneToMany" я n свойство App \ Entity \ UserRoles :: $ users никогда не импортировалось. Возможно, вы забыли добавить выражение «use» для этой аннотации?
я удалил сеттеров и методы получения и соответствующие поля из-за StackOverflow ограничение кода соотношение текста –
Это «@ORM \ OneToMany». Подробнее см. В инструкциях 'use'. –
Что сказал @AlexBlex. Вам также не хватает '' @ORM \ '' для '' ManyToOne'' и '' JoinColumn'' –