1

私は過去数時間この質問に苦労していて、何も見つけることができませんでした。

FOSUserBundleを構成し、グループを正しくアクティブ化して機能させました。ただし、ユーザーとグループの関係は、Userクラスで次のように定義されています。

/**
 * @ORM\ManyToMany(targetEntity="Netlabs\UserBundle\Entity\Group")
 * @ORM\JoinTable(name="fos_user_user_group",
 *      joinColumns={@ORM\JoinColumn(name="user_id", referencedColumnName="id")},
 *      inverseJoinColumns={@ORM\JoinColumn(name="group_id", referencedColumnName="id")}
 * )
 */
protected $groups;

Groupクラスでは、$userリストも定義されていません。Groupクラスに$users変数を作成し、Userオブジェクトとの関係を定義するなど、「通常の」ことをたくさん試しましたが、FOSUserBundleではうまく機能していません(毎回、関係を作成するための新しいテーブルが作成されます。すでに1つある場合)。例えば:

/**
 * @ORM\ManyToMany(targetEntity="Netlabs\UserBundle\Entity\Group", inversedBy="groups", cascade={"all"})
 * 
 */
protected $users;

助言がありますか ?

繰り返しますが、私の主な目標は次のとおりです。Group-> getUsers()を実行できるようにしたい

4

1 に答える 1

1

Groupクラスでは、targetEntityはGroupではなくUserである必要があります。さらに、$ groupsの属性にinversedByルールを追加し、$usersのmappedByにinversedByを変更してみてください。

/**
 * @ORM\ManyToMany(targetEntity="Netlabs\UserBundle\Entity\Group", inversedBy="users")
 * @ORM\JoinTable(name="fos_user_user_group",
 *      joinColumns={@ORM\JoinColumn(name="user_id", referencedColumnName="id")},
 *      inverseJoinColumns={@ORM\JoinColumn(name="group_id", referencedColumnName="id")}
 * )
 */
protected $groups;

/**
 * @ORM\ManyToMany(targetEntity="Netlabs\UserBundle\Entity\User", mappedBy="groups")
 * 
 */
protected $users;
于 2012-08-02T09:30:05.103 に答える