我非常新(使用5.2这是最新版本为准)到laravel,因此我有以下的困境:我知道,Laravel自带User
类开箱的,但我想开发一个系统,我可以有另外两种类型的用户叫做Researcher
和Admin
.
我主要需要创建完全不同类型的用户(研究员和Admin),可能是继承User
,因为业务逻辑是在他们之中几乎100%不同,我不希望在数据库中建立一个资料栏的用户类型进行分类.此外,不会有太多的领域,股市之间的重叠User
,Admin
以及Researcher
类.
我的主要问题是:如果我从User
其他2个类继承的话,一切仍然可以工作(Auth Controller,中间件启用等等)吗?我知道OOP的原则和直觉我认为如果我做以下事情我应该没事:
//'Stock' User class: // class User extends Authenticatable{ //Any overlapping logic between Researcher and Admin. } class Researcher extends User{ //My class definition here. } class Admin extends User{ //My class definition here. }
然后使用这两个类,因为我通常会使用该类的实例User
.通过这种方式,我的意思是使用所有方法和开箱即用的User
功能.
问题扩展:在写我的问题时,我意识到User
默认情况下该类看起来像这样:
我不能只执行以下操作而不是继承
User
来创建我的其他2个类(Researcher
&Admin
)://Researcher Class: namespace App; use Illuminate\Foundation\Auth\User as Authenticatable; class Researcher extends Authenticatable { //Class definition... } ... //Admin Class: namespace App; use Illuminate\Foundation\Auth\User as Authenticatable; class Admin extends Authenticatable { //Class definition }在这种方法中,我试图"模仿"这门
User
课程.问题是我不知道内核中是否存在任何硬编码的逻辑,并且User
隐式地引用了该类.任何想法和帮助将不胜感激.对不起,如果这对你很愚蠢.我刚刚开始使用laravel框架.
干杯!