這篇文章將為大家詳細講解有關laravel的中間件middleware怎么用,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。
中間件可以對請求進行過濾,這里可以利用中間件來驗證用戶是否登錄,如果用戶登錄則可以繼續執行原先想執行的操作,如果沒登錄則重定向到登錄頁面,讓用戶先登錄。
一、定義中間件
通過 php artsian
make:middleware
命令 創建中間件,文件路徑: app\Http\Middleware\CheckToken.php
php artisan make:middleware CheckToken
<?php namespace App\Http\Middleware; use Closure; use Illuminate\Http\Request; class CheckToken { /** * Handle an incoming request. * * @param \Illuminate\Http\Request $request * @param \Closure $next * @return mixed */ public function handle(Request $request, Closure $next) { //在這里做一個判斷,如果token不是 'my-secret-token',則重定向 if ($request->input('token') !== 'my-secret-token') { return redirect('home'); } return $next($request); } }
二、中間件的分類
前置中間件
<?php namespace App\Http\Middleware; use Closure; class BeforeMiddleware { public function handle($request, Closure $next) { ... // 應用請求之前執行一些任務 return $next($request); } }
后置中間件
<?php namespace App\Http\Middleware; use Closure; class AfterMiddleware { public function handle($request, Closure $next) { $response = $next($request); // 應用請求之后執行一些任務 return $response; } }
三、中間件的使用
全局使用中間件
//在app\Http\Kernel.php中的$middleware內添加 protected $middleware = [ // \App\Http\Middleware\TrustHosts::class, .... .... \Illuminate\Foundation\Http\Middleware\ConvertEmptyStringsToNull::class, //這是之前定義的 \App\Http\Middleware\CheckToken::class, ];
使用中間件組
//在app\Http\Kernel.php中的$middlewareGroups內添加 protected $middlewareGroups = [ 'web' => [ .... ], 'api' => [ .... ], 'diy' =>[ //可以在web組和api組中添加,也可以自己diy一個 ] ]; //路由中使用,RouteServiceProvider 默認將 web 和 api 中間件組自動應用到 routes/web.php 和 routes/api.php Route::get('/u', function () { })->middleware('diy');
單獨使用中間件
protected $routeMiddleware = [ ..., 'myself'=> \App\Http\Middleware\CheckToken::class, ]; Route::get('/user', function () { // })->middleware('myself');
關于“laravel的中間件middleware怎么用”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。