laravel,获取Auth :: user()表名

时间:2015-10-03 18:00:38

标签: php authentication laravel-5

laravel版本:5.0

我目前在laravel中制作管理员登录中间件。

即时使用laravel默认身份验证。 在这种状态下,我已成功登录。

据我所知,我可以通过Auth::User()->id;获取用户ID,  但问题是:我无法找到恢复表名的方法;

如果我执行dd(Auth::User());

,那么

是下面的结果

  

正如你所看到的那样,可以提供信息#table:" admins"

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
}

这是我的中间件,我想检查表名是否为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 ::调用什么方法来获取表名?

如果有更好的练习,请不要犹豫回答。

2 个答案:

答案 0 :(得分:2)

如果您的管理员class正在延长Eloquent\ModelAdmin::getTable()$adminInstance->getTable()应该有效。

答案 1 :(得分:0)

不是为管理员和用户创建两个单独的表,而是将他们的凭据放入同一个表中,并使用第二个表,即包含用户角色详细信息的角色。如果您想要表结构和代码,请告诉我,我会分享它