2016-10-14 22 views
3

我使用Laravel 5.2 ,我已經創建了我的自定義衛士認證這樣Laravel驗證::後衛(「名稱」)訪問表列直接

'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上訪問?

回答

3

最後得到了解決。 我們將要求使用

Auth::guard('admin')->user()->email 
0

在提供商陣列使用模型來代替表

'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{ 
    ... 
} 
+0

登錄完美/。 試圖訪問這個'回聲Auth :: guard('admin') - > get() - > email;'仍然不工作:-( –

+0

要獲得電子郵件嘗試'Auth :: guard('admin') - > email ' –

+0

它將與Auth :: guard('admin') - > user() - > email :-)一起使用 –