我想验证用户和管理员的形式user表,并admin分别表.我正在使用User开箱即用的laravel提供的模型,并为Admin.我添加了一个保护密钥和提供者密钥创建了相同的模型auth.php.
逆天
'guards' => [
'user' =>[
'driver' => 'session',
'provider' => 'user',
],
'admin' => [
'driver' => 'session',
'provider' => 'admin',
],
],
Run Code Online (Sandbox Code Playgroud)
供应商
'providers' => [
'user' => [
'driver' => 'eloquent',
'model' => App\User::class,
],
'admin' => [
'driver' => 'eloquent',
'model' => App\Admin::class,
]
],
Run Code Online (Sandbox Code Playgroud)
路线
Route::group(['middleware' => ['web']], function () {
// Login Routes.
Route::get('/admin/login','AdminAuth\AuthController@showLoginForm');
Route::post('/admin/login','AdminAuth\AuthController@login');
Route::get('/admin/logout','AdminAuth\AuthController@logout');
// Registration Routes.
Route::get('admin/register', …Run Code Online (Sandbox Code Playgroud) 我非常新(使用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) 身份验证驱动程序/"Multi-Auth"
在发布laravel 5.2之前,声明多个auth支持开箱即用.但是没有任何示例代码显示如何使用具有路由的不同驱动程序进行身份验证.所以我需要帮助使用默认的laravel 5.2设置multi-auth