8

私は最初の本格的な Symfony2 プロジェクトを構築しています。ユーザー/グループ管理のために FOSUserBundle を拡張しています。新しいユーザーをデフォルト グループに自動的に追加したいと考えています。次のように User エンティティコンストラクターを拡張するだけでよいと思います。

/**
 * Constructor
 */
public function __construct()
{
    parent::__construct();
    $this->groups = new \Doctrine\Common\Collections\ArrayCollection();
    // Get $defaultGroup entity somehow ???
    ...
    // Add that group entity to my new user :
    $this->addGroup($defaultGroup);
}

しかし、私の質問は、そもそも $defaultGroup エンティティを取得するにはどうすればよいですか?

エンティティ内からエンティティ マネージャを使用しようとしましたが、それがばかげていることに気付き、Symfony がエラーをスローしていました。私はこれをグーグルで検索しましたが、おそらくそのためのサービスをセットアップする以外に本当の解決策は見つかりませんでした...これは私にはかなり不明確に思えます.

4

2 に答える 2

3

ユーザーの作成方法については言及していません。一部の管理者がユーザーを作成するか、カスタム登録アクションがある場合、コントローラーのアクションでグループを設定できます。

$user->addGroup($em->getRepository('...')->find($group_id));

ただし、登録時に fosuserbundles ビルドを使用する場合は、コントローラー ( https://github.com/FriendsOfSymfony/FOSUserBundle/blob/master/Resources/doc/controller_events.md ) にフックして、イベント リスナーを使用する必要があります。

于 2013-03-11T08:38:53.377 に答える