0

ロール (ROLE_ADMIN、...) を持つユーザー クラスとクラス グループがあります。それらの間の関係は次のとおりです。グループ (OneToMany) ------ ユーザー (多対一)。User クラスの属性「ロール」を削除して Group クラスに入れるため、Group クラスにはロールが含まれます。

フォームでユーザーを作成するとき

(フォームには、さまざまなロールを持つグループ クラスを派生するチェックボックスが含まれており、データベースではすべてが正常であり、group_id は User テーブルにあります)

このユーザーに接続しようとすると、エラーが発生します。

「キャッチ可能な致命的なエラー: 引数が 4 を Symfony \ コンポーネント \ セキュリティ \ コア \ 認証 \ トークンに渡されました ...」

group_id は一意のロールと一致するため、エンティティ グループの識別子 (group_id) に従って接続するにはどうすればよいですか?

よろしくお願いいたします。 (Excuse my English)

4

1 に答える 1

0

おそらく、次のようなグループへの割り当てに基づいてすべてのロールを返すユーザー エンティティ メソッド getRoles を作成する必要があります。

public function getRoles()
{
     $roles = array();
     foreach ($this->getGroups() as $group) {
           foreach($group->getRoles() as $role)
                  $roles[] = $role;
     }
     return $roles;
}

ユーザー エンティティは、ユーザーの役割の配列を返す必要があります - インターフェースが必要です

于 2013-10-30T11:42:31.170 に答える