Laravel middleware中間件

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

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章