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 ::调用什么方法来获取表名?
如果有更好的练习,请不要犹豫回答。
答案 0 :(得分:2)
如果您的管理员class
正在延长Eloquent\Model
,Admin::getTable()
或$adminInstance->getTable()
应该有效。
答案 1 :(得分:0)
不是为管理员和用户创建两个单独的表,而是将他们的凭据放入同一个表中,并使用第二个表,即包含用户角色详细信息的角色。如果您想要表结构和代码,请告诉我,我会分享它