私はいくつかのエンティティを持っており、ユーザーと権限の間の関係を設定しようとしています。私は権限のグループをユーザーに割り当てる可能性があるので、エンティティUser、GroupAssociationsUser、Permissionsを作成しました。私は、GroupAssociationsUserとUsers、そしてPermissionsにManyToOne関係を作成するのが最善の方法です。あなたはGroupAssociationsUserエンティティのコードを参照することができベロー:だから基本的に私が持っていると思いますsymfony 3、ManyToOneの関係
/**
* @ORM\OneToMany(targetEntity="GroupAssociationsUser", mappedBy="group_permissions")
*/
private $group_assoc_user;
public function __construct()
{
$this->group_assoc_user = new ArrayCollection();
}
:権限のエンティティで最後に
/**
* @ORM\OneToMany(targetEntity="GroupAssociationsUser", mappedBy="user_assoc")
*/
private $group_assoc_user;
public function __construct()
{
$this->group_assoc_user = new ArrayCollection();
}
:
/**
* @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;
をそれから私はまた、Userエンティティで関係を作成します私のユーザー編集ページのリストを選択してください。ユーザーに割り当てる権限グループを選択する可能性があります。
だから私はしてフォームを作成しました:
->add('group_assoc_user', EntityType::class, array(
'class' => 'AppBundle:Permissions',
'choice_label'=> 'group_name',
'placeholder' => 'no rights',
))
そして問題は、私はにコードを変更した場合、私は何をすべきか何の母校は、私が許可を出たりのリストだけを持っていないことである。
->add('group_assoc_user', EntityType::class, array(
'class' => 'AppBundle:GroupAssociationsUser',
'choice_label'=> 'Permissions.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}、 私の方法(上記のコード)を使用して、私は割り当てられたフィールド情報を得ることができますが、割り当てられていません。または、最初の例のようにすべての権限を取得できますが、選択した要素(