2015-10-03 87 views
0

laravel版本:5.0laravel,獲取Auth :: user()表名

我正在使laravel中的管理員登錄中間件。

即時使用laravel默認身份驗證。在這種狀態下 ,我已成功登錄

,因爲我知道,我可以通過做Auth::User()->id;, 但問題獲得用戶ID:我不能找到辦法以檢索表名。

下面這是結果,如果我執行dd(Auth::User());

,你可以看到它cointains信息#table: 「管理員」

Admin {#177 ▼ 
    #table: "admins" 
    #fillable: array:3 [▶] 
    #hidden: array:2 [▶] 
    #connection: null 
    #primaryKey: "id" 
    #perPage: 15 
    +incrementing: true 
    +timestamps: true 
    #attributes: array:7 [▶] 
    #original: array:7 [▶] 
    #relations: [] 
    #visible: [] 
    #appends: [] 
    #guarded: array:1 [▶] 
    #dates: [] 
    #casts: [] 
    #touches: [] 
    #observables: [] 
    #with: [] 
    #morphClass: null 
    +exists: true 
} 

這是我的中間件,其中i想檢查表格名稱是否爲admin:

<?php namespace App\Http\Middleware; 
use Closure; 
use Auth; 

class AdminMiddleware extends Model{ 

    /** 
    * Handle an incoming request. 
    * 
    * @param \Illuminate\Http\Request $request 
    * @param \Closure $next 
    * @return mixed 
    */ 
    public function handle($request, Closure $next) 
    { 

     if(Auth::User()->getTable() == 'admins') //this doesnt work 
     { 
      return $next($request); 
     } 
     else 
     { 
      return response('Unauthorized.', 401); 
     } 

    } 

} 

即時通訊嘗試從laravel文檔中查找並在stackoverflow中搜索,似乎我沒什麼。

問:我需要從Auth ::調用哪個方法來獲取表名?

如果有更好的做法不要猶豫回答。

+0

你爲什麼要獲取表名? –

+0

我有用戶表和管理表,我試圖驗證,如果登錄憑據是管理員,我缺少的東西..?這種方法看起來很髒 – Rickvian

回答

0

如果您的Admin class正在延伸Eloquent\Model,Admin::getTable()$adminInstance->getTable()應該工作。

+0

謝謝你的回覆。 即時對不起,我已改善我的問題了解更多詳情... 你的意思是我的AdminMiddleware類嗎? 導致即時通訊嘗試從當前的已認證用戶獲取表名, 沒有從我的數據庫中獲取 – Rickvian

0

而不是爲管理員和用戶創建兩個單獨的表,並將其憑據放入同一個表中並使用第二個表,即包含用戶角色詳細信息的角色。如果你想要表結構和代碼相同讓我知道,我會分享它

相關問題