5
나는 many-to-many 관계가있는 user, role, user_x_role의 3 개의 간단한 테이블을 가지고 있습니다. 2 개의 엔티티가 있습니다 : 사용자 및 역할. 사용자 엔티티에는 relation 주석이있는 $ userRoles 속성이 있습니다. 컨트롤러에서 특정 역할을 가진 모든 사용자를 가져와야합니다. 하지만 컨트롤러에서 JOIN을 사용하는 방법을 모르겠습니다. 현재 잘못된 코드 :symfony2에서 JOIN 기준을 사용하는 findBy
$role = $this->getDoctrine()->getRepository('TestBackEndBundle:Role');
$roles = $role->findBy(array('name' => 'ROLE_PARTNER'));
$user = $this->getDoctrine()->getRepository('TestBackEndBundle:User');
$partners = $user->findBy(array('userRoles' => $roles));
"정의되지 않은 색인 : joinColumns in ..."입니다. 하지만 나는 사용자 엔티티에 컬럼을 결합했습니다.
/**
* @ORM\ManyToMany(targetEntity="Role")
* @ORM\JoinTable(name="user_x_role",
* joinColumns={@ORM\JoinColumn(name="user_id", referencedColumnName="id", onDelete="CASCADE", onUpdate="CASCADE")},
* inverseJoinColumns={@ORM\JoinColumn(name="role_id", referencedColumnName="id", onDelete="CASCADE", onUpdate="CASCADE")}
*)
* @var ArrayCollection
*/
protected $userRoles;