我使用的是Laravel 5.2 我已经创建了我的自定义防护装置,如此
'guards' => [
'web' => [
'driver' => 'session',
'provider' => 'users',
],
'api' => [
'driver' => 'token',
'provider' => 'users',
],
'admin' => [
'driver' => 'session',
'provider' => 'admin',
],
],
'providers' => [
'users' => [
'driver' => 'eloquent',
'model' => App\User::class,
],
'admin' => [
'driver' => 'database',
'table' => 'admin',
],
// 'users' => [
// 'driver' => 'database',
// 'table' => 'users',
// ],
],
所有登录工作正常但如果您还记得laravel 4.2的早期版本,我们可以直接使用用户表列
Auth::user()->get->id
或Auth::user()->id
在Laravel 5.2中我试图像
那样做 Auth::guard('admin')->get->email
或Auth::guard('admin')->get->id
会引发错误。
我可以在这个版本的laravel上知道它是否可以这样访问?
答案 0 :(得分:3)
终于得到了解决方案。 我们需要使用
Auth::guard('admin')->user()->email
答案 1 :(得分:0)
在Providers数组中使用模型而不是表
'providers' => [
'users' => [
'driver' => 'eloquent',
'model' => App\User::class,
],
'admin' => [
'driver' => 'eloquent',
'model' => App\Admin::class,
],
]
以及管理模型扩展
use Illuminate\Foundation\Auth\User as Authenticatable;
class Admin extends Authenticatable{
...
}