我非常新(使用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.
}
Run Code Online (Sandbox Code Playgroud)
然后使用这两个类,因为我通常会使用该类的实例User.通过这种方式,我的意思是使用所有方法和开箱即用的User功能.
问题扩展:在写我的问题时,我意识到User默认情况下该类看起来像这样:
<?php
namespace App;
use Illuminate\Foundation\Auth\User as Authenticatable;
class User extends Authenticatable
{
/**
* The attributes that are …Run Code Online (Sandbox Code Playgroud)