创建 php artisan make:middleware TestMiddleware
自动生成了 app/Http/Middleware/TestMiddleware.php 文件
public function handle($request, Closure $next)
{
//编写具体业务
if($request->get("id")==2){
echo "hehe" ;
}else{
echo "cccc";
}
//请求转发给下一步
return $next($request);
}
注册中间件,注册的方式有三种:
1.全局注册
在 app/Http/Kernel.php 中的 $middleware 进行注册:
protected $middleware = [
# ...
\App\Http\Middleware\TestMiddleware::class,
];
2.路由注册
首先在 app/Http/Kernel.php 的 $routeMiddleware 中注册自定义的路由
protected $routeMiddleware = [
# ...
'test_middleware' => \App\Http\Middleware\TestMiddleware::class,
];
然后在 routes/web.php 中将中间件绑定到指定的路由
Route::get('test', 'TestController@index')->name('test')->middleware('test_middleware')
3.路由分组注册
Route::group(['middleware' => ['test_middleware']], function () {
Route::get('test', 'TestController@index')->name('test');
});
修改 app/Http/Controllers/TestController.php 代码:
class TestController extends Controller
{
public function __construct()
{
// 排除某些方法
// return $this->middleware(['test_middleware'])->except('index');
return $this->middleware(['test_middleware']);
}
public function index()
{
echo "test";
}
}