$ role должен быть массивом строк или экземпляров RoleInterface, но должен содержать объект - PullRequest
1 голос
/ 13 декабря 2011

Это с Symfony2 и Doctrine2.У меня есть это в моей пользовательской сущности:

public function getRoles()
{
    return $this->roles->toArray();
}

Тем не менее, он возвращает:

 array(object(Role))

Есть идеи, где я могу начать поиск?Я отлаживал некоторое время.

Ответы [ 2 ]

2 голосов
/ 14 декабря 2011

Это логическое поведение;по умолчанию Doctrine2 возвращает объект Collection, и, вызывая toArray(), вы преобразуете его в массив.Но ваш массив все еще содержит Role объекты, которые в основном не являются строками.Конечно, вы можете определить свои собственные методы, чтобы получить его как строку, я думаю, что в основном вам просто нужно вызвать Role::getRole().

Посмотрите эту статью , это может помочьвы.

1 голос
/ 13 февраля 2015

Я столкнулся с этой ошибкой сам после того, как выполнил Учебное пособие по загрузке пользователей из базы данных , и, возможно, это ваш случай.

Оказывается, я забыл реализовать RoleInterface на моем Role объекте сущности (объект, на который ссылается мой User объект). Вот и все.

...