在管理表/模型上为不同类型的管理员添加中间件

时间:2018-07-01 13:42:29

标签: laravel-5.6

我想在管理表上创建多重身份验证,

我已经创建了一个管理表,

Schema::create('admins', function (Blueprint $table) {
        $table->increments('id');
        $table->string('name');
        $table->string('email')->unique();
        $table->string('job_title');
        $table->string('password');
        $table->rememberToken();
        $table->timestamps();
    });

job_title可能类似于SuperAdmin和Admin。 我想应用中间件来限制两个管理员的角色。 为此,我创建了AdminMiddleware和SuperAdminMiddleware。 但是我对AdminMiddleware感到困惑,如何获取管理员数据。

AdminMiddleware.php

 public function handle($request, Closure $next)
{

    if ($request->admin() && $request->admin()->type != 'Admin')
    {
         return view('unauthorized')->with('role','Admin');
    }
    return $next($request);
}

我遇到此错误

  

方法管理员不存在

对于用户,我们可以这样做

public function handle($request, Closure $next)
{

    if ($request->user() && $request->user()->type != 'admin')
    {
         return view('unauthorized')->with('role','Admin');
    }
    return $next($request);
}

但是在管理表/模型的情况下,我们该怎么办?

0 个答案:

没有答案