Laravel Auth :: guard('name')直接访问表列

时间:2016-10-14 07:02:35

标签: laravel laravel-5.2

我使用的是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->idAuth::user()->id

在Laravel 5.2中我试图像

那样做

Auth::guard('admin')->get->emailAuth::guard('admin')->get->id会引发错误。

我可以在这个版本的laravel上知道它是否可以这样访问?

2 个答案:

答案 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{
  ...
 }