FOS USerBundle を使用したいのですが、アプリケーションにログインできるさまざまな種類のユーザー (学生、教師、ディレクターなど) がいます。次に、それぞれに固有の異なるプロパティがあります。
私が見るように、いくつかのオプションがあります:
オプション 1 - FOS\UserBundle\Entity\User を継承する User エンティティ (および FOS UserBundle の user_class として config.yml に設定) を持つには、ROLE によって区別されるさまざまな種類のユーザーのすべてのプロパティを使用します。私は特にこのオプションが好きではありません.Userエンティティは、システムにユーザーがログインするたびにnullで多くのプロパティを持ちます.未使用になります。
オプション 2 - FOS\UserBundle\Entity\User を継承する User エンティティを作成する (および FOS UserBundle の user_class として config.yml に設定する) には、アプリケーションの各アクター (学生、教師、ディレクターなど) に対して 1 つのエンティティを作成します。 User エンティティとの OneToOne の関係。このようにして、ユーザーがログインするたびに、ログインしたユーザーの種類に応じて、$logguedUser->getStudent() または $logguedUser->getTeacher() などと言うことができます。
オプション 3 - FOS\UserBundle\Entity\User を継承するユーザー エンティティを作成するには、アプリケーションの各アクター (学生、教師、ディレクターなど) に対して 1 つのエンティティを作成し、そのエンティティのそれぞれがユーザーから継承します。これは理論的にはより良いオプションですが、構成ウィッチで FOS UserBundle が user_class であると言う必要があるため、それを実装する方法を理解することはできません。 . アクターがアプリケーションにログインしたとき、どのオブジェクトがログに記録されますか?
誰かがより良いオプション、または3番目を実装する方法、または1つをサポートする方法を持っていますか? 送信