2

こんにちは皆さん、symfony でユーザーとユーザーの役割とその仕組みについてのロジックを理解しようとしています。symfony の初心者で、このチュートリアルに従います: http://symfony.com/doc/current/security/entity_provider.html

私のプロジェクトではすべてが完璧に機能しますが、データベースを見ると、userテーブルとすべてのユーザーがテーブル内のデータのように登録されています。

しかし、ユーザー ロールのテーブルはどこにありますか? symfony が誰で誰が誰であるかを知るROLE_ADMIN方法ROLE_MODERATOR。すべてのユーザーに特定のロールを実装し、そのロールをデータベースに保存して、後で管理パネルから変更できるようにするにはどうすればよいですか? ACLかな?

4

2 に答える 2

6

symfony はロールを保存する責任を負いません。たとえば、管理コンソールをスローして管理する必要がある場合は、それらを保存する必要があります。

User エンティティが実装するSymfony\Component\Security\Core\User\UserInterfaceInterface には、ユーザー ロールを表す文字列getRolesの配列または の配列のいずれかを返すメソッド名が含まれています。したがって、を実装するという名前のプロジェクトにエンティティを作成できます。次に、そのエンティティを User エンティティにリンクして、ManyToMany関連付けをスローします。最後に、指定されたユーザーのロールを返す getRoles メソッドを実装します。Symfony\Component\Security\Core\Role\RoleInterfaceRoleSymfony\Component\Security\Core\Role\RoleInterface

その後、プロジェクト内の他のエンティティとしてロールを管理できます。

于 2016-10-06T11:57:01.983 に答える