控制器中间件

时间:2015-07-10 10:12:54

标签: laravel

我的控制器名为'AdminController'

我在那里有很多功能。问题是我不希望在每个函数用户IF语句中这样:

public function index(Request $request)
{
    if(Auth::check() && $request->user()->is_admin())
    {
    return view('admin.index');
    }
    else
    {
        flash()->error('You dont have permissions!');
        return redirect('home');
    }
}

如何使用中间件使其变得更简单,这样我就可以在不使用每个函数的IF语句的情况下使一切正常工作?

1 个答案:

答案 0 :(得分:0)

创建中间件

php artisan make:middleware IsAdmin

自定义app/Http/Middleware/IsAdmin.php

<?php

namespace App\Http\Middleware;

use Auth;
use Closure;

class IsAdmin
{
    /**
    * Handle an incoming request.
    *
    * @param  \Illuminate\Http\Request  $request
    * @param  \Closure  $next
    * @return mixed
    */
    public function handle($request, Closure $next)
    {
        if(Auth::check() && $request->user()->is_admin())
        {
            return $next($request);
        }

        flash()->error('You dont have permissions!');
        return redirect('home');
    }
}

最后register and use the middleware