我正在做一個symfony應用程序。我嘗試實現一個用戶系統。使用不同的實體登錄symfony
3類型的人可以登錄:學生,教師和祕書
如果我modelise這樣,我該怎麼做一個登錄類?
在我的學生我的實體有:
/**
* @var \essaiBundle\Entity\User
*
* @ORM\Id
* @ORM\GeneratedValue(strategy="NONE")
* @ORM\OneToOne(targetEntity="essaiBundle\Entity\User")
* @ORM\JoinColumns({
* @ORM\JoinColumn(name="id", referencedColumnName="id")
* })
*/
private $id;
,提及的用戶ID。
如何獲取用戶登錄的角色?
我的安全文件:
security:
providers:
our_db_provider:
entity: { class: essaiBundle\Entity\User, property: username}
access_control:
- { path: ^/admin, roles: ROLE_ADMIN }
firewalls:
login_firewall:
pattern: ^/login$
anonymous: ~
default:
anonymous: ~
http_basic: ~
form_login:
login_path: /login
check_path: /login_check
csrf_provider: security.csrf.token_manager
default_target_path: admin
provider: our_db_provider
encoders:
essaiBundle\Entity\User:
algorithm: bcrypt
cost: 12
感謝
'Student','Teacher'和'Secretary'實體有什麼區別?在這種情況下,[角色機制](http://symfony.com/doc/current/book/security.html#roles)是否不夠?如果你不得不分開你的實體,請看[Doctrine inheritance](https://doctrine-orm.readthedocs.org/projects/doctrine-orm/en/latest/reference/inheritance-mapping.html)。 – chapay
由於應用程序的其他部分,我需要3個實體。教師與學生等的屬性不一樣,而且與其他實體的關係也不同。 – anubis
當您使用多個用戶提供者時,您可以使用多個用戶實體:http://symfony.com/doc/currentbook/security/multiple_user_providers.html 但是,您應該考慮只使用一個用戶實體和多個角色chapay建議。 –