나는 몇몇 엔티티가 있으며 사용자와 권한 사이의 관계를 설정하려고합니다. 내가 권한을 사용자에게 그룹을 할당 할 수있는 권한을 갖고 싶어 그래서, 엔티티 사용자, GroupAssociationsUser, 권한을 만들었습니다. 가장 좋은 방법은 GroupAssociationsUser에서 Users 및 Permissions에 ManyToOne 관계를 만드는 것입니다. 당신이 GroupAssociationsUser 엔티티의 코드를 볼 수 있습니다 노호 : 다음Symfony 3, ManyToOne 관계가 형태로
/**
* @ORM\ManyToOne(targetEntity="Permissions", inversedBy="group_assoc_user")
* @ORM\JoinColumn(name="group_permissions", referencedColumnName="id", nullable=FALSE)
*/
private $group_permissions;
/**
* @ORM\ManyToOne(targetEntity="User", inversedBy="group_assoc_user")
* @ORM\JoinColumn(name="user_assoc", referencedColumnName="id", nullable=FALSE)
*/
private $user_assoc;
을 나는 사용자 개체에서도 만들어 관계 :
/**
* @ORM\OneToMany(targetEntity="GroupAssociationsUser", mappedBy="user_assoc")
*/
private $group_assoc_user;
public function __construct()
{
$this->group_assoc_user = new ArrayCollection();
}
마지막으로 권한 개체에서 :
/**
* @ORM\OneToMany(targetEntity="GroupAssociationsUser", mappedBy="group_permissions")
*/
private $group_assoc_user;
public function __construct()
{
$this->group_assoc_user = new ArrayCollection();
}
그래서 기본적으로 내가 원하는해야합니다 내 사용자 편집 페이지에서 목록을 선택하고 사용자에게 할당 할 권한 그룹을 선택할 수있는 권한을 갖고 싶습니다.
그래서 난과 양식을 만들어 :
->add('group_assoc_user', EntityType::class, array(
'class' => 'AppBundle:GroupAssociationsUser',
'choice_label'=> 'Permissions.group_name',
'placeholder' => 'no rights',
));
:
->add('group_assoc_user', EntityType::class, array(
'class' => 'AppBundle:Permissions',
'choice_label'=> 'group_name',
'placeholder' => 'no rights',
))
그리고 그 문제는 내가 무엇을 더 이잖아요, 나는 종료 권한의 목록을 가지고하지 않았는지 또는 내가 코드를 변경하는 경우 할당되지 않은 할당 된 권한 만 나열되었습니다. 내가 도대체 뭘 잘못하고있는 겁니까?
이미 모든 권한 이름을 가지고 있어도 doctrine이 이미 할당 된 필드를 표시하도록 강제 할 수 있습니까?
쿼리 빌더를 사용하려고
옵션처럼 - [이런] (http://symfony.com/doc/current /reference/forms/types/entity.html#using-a-custom-query-for-theentities) –
안녕하세요 피터, 정확히 무엇을 반환해야합니까? ''클래스 '=>'AppBundle : 권한 ' 'query_builder '=> 함수 (EntityRepository $으로 어) { \t \t \t \t \t 복귀 $의 ER-> createQueryBuilder ('U ') \t \t \t \t \t - > orderBy ('u.id', 'ASC'); \t \t \t \t} ' 내 방법 (위의 코드)을 사용하여 할당 된 필드 정보를 얻을 수 있지만 할당되지 않은 상태로받을 수 있습니다. 또는 첫 번째 예와 같이 모든 권한을 얻을 수 있지만 선택한 요소 (