創建 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";
}
}