Задать вопрос
@Tem_ka

Почему User (sf3) всегда возвращает лишь одну роль?

Разбираюсь с sf3. Проблема в том, что при аутентификации (кастомная) юзер подбирает только одну роль, первую встречающуся в БД. Смотрю профайлере - запрос на получение ролей из бд не лимитирован количеством строк.

Сущность User:
/**
 * @ORM\Entity
 * @ORM\Table(name="users")
 */
class User implements UserInterface, \Serializable
{
    // ...

    /**
     * @ORM\OneToMany(targetEntity="Role", mappedBy="user")
     */
    private $roles;

    public function __construct()
    {
        $this->roles = new ArrayCollection();
    }

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

    // ...
}

Сущность Role:
use Doctrine\ORM\Mapping as ORM;
use Symfony\Component\Security\Core\Role\Role as BaseRole;

/**
 * @ORM\Entity
 * @ORM\Table(name="users_role")
 */
class Role extends BaseRole
{
    /**
     * @ORM\Id
     * @ORM\ManyToOne(targetEntity="User", inversedBy="roles")
     */
    private $user;

    /**
     * @ORM\Column(type="string", length=30)
     */
    protected $role;

    // ...
}


Что не так с маппингом?
  • Вопрос задан
  • 185 просмотров
Подписаться 1 Простой 10 комментариев
Решения вопроса 1
Minifets
@Minifets
Hello world!!!
На вскидку могу предположить, что проблема в сущности Role, у тебя в $user стоит аннотация Id. Это значит, что у тебя для каждой записи должен быть уникальный user_id. Так что даже не могу предположить, как ты 2 роли для 1 пользователя умудрился назначить, если тебе это база не должна повалять.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы