Как вы объявляете отношения, используя Nelmio / Alice и Doctrine? - PullRequest
0 голосов
/ 28 февраля 2020

Изучение использования Алисы в сочетании с тестами Behat, и я столкнулся с небольшой проблемой при попытке назначить объекты в отношениях. Я пытаюсь подделать пользователя и роль. Все работает хорошо, пока не указана роль.

Случай очень прост:

Пользователь Объект:

class User implements UserInterface
{

    /**
     * @var int
     * @ORM\Id
     * @ORM\GeneratedValue(strategy="AUTO")
     * @ORM\Column(type="integer", nullable=false, options={"unsigned"=true})
     */
    private $id;


    /**
     * @var string
     * @ORM\Column(type="string", unique=true,  length=255)
     */
    private $email;

    /**
     * @var \Doctrine\Common\Collections\Collection
     * @ORM\ManyToMany(targetEntity="CirclicalUser\Entity\Role")
     * @ORM\JoinTable(
     *     name="users_roles",
     *     joinColumns={@ORM\JoinColumn(name="user_id", referencedColumnName="id", onDelete="CASCADE")},
     *     inverseJoinColumns={@ORM\JoinColumn(name="role_id", referencedColumnName="id")}
     * )
     */
    private $roles;

}

И затем Роль объект:

class Role implements RoleInterface
{
    /**
     * @var int
     * @ORM\Id
     * @ORM\Column(type="integer")
     * @ORM\GeneratedValue(strategy="AUTO")
     */
    private $id;

    /**
     * @var string
     * @ORM\Column(type="string", length=255, unique=true, nullable=true)
     */
    private $name;

    /**
     * @var Role
     * @ORM\ManyToOne(targetEntity="CirclicalUser\Entity\Role")
     */
    private $parent;

}

Мой NELMIO / Алиса YAML выглядит так:

CirclicalUser\Entity\Role:
  user:
    id: 1
    name: 'user'
  admin:
    id: 2
    parent: '@user'
    name: 'admin'

Application\Entity\User:
  user1:
    id: 1
    email: 'user@email.com'
    roles: ['@admin']

Когда я пытаюсь загрузить приборы, я получаю эту ошибку:

Произошла ошибка при создании осветителя "user1" (Application \ Entity \ User): не удалось гидратировать свойство "role" объекта "user1" (класс: Application \ Entity \ User). (Nelmio \ Alice \ Throwable \ Exception \ Generator \ DebugUnexpectedValueException)

Интересно, если я поменяю отношение role на User с частного на publi c ошибка исчезает Как правильно сохранить конфиденциальность и добиться успеха с этим приспособлением?

Спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...