Middleware boleh menapis permintaan Di sini anda boleh menggunakan middleware untuk mengesahkan sama ada pengguna telah log masuk. Jika pengguna log masuk, anda boleh meneruskan operasi asal tidak log masuk, anda akan diubah hala Pergi ke halaman log masuk dan biarkan pengguna log masuk terlebih dahulu.
1. Tentukan middleware
Cipta middleware melalui perintah php artsian
make:middleware
, laluan fail: appHttpMiddlewareCheckToken.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); } }
2. Klasifikasi middleware
Pra-middleware
<?php namespace App\Http\Middleware; use Closure; class BeforeMiddleware { public function handle($request, Closure $next) { ... // 应用请求之前执行一些任务 return $next($request); } }
Post-middleware
<?php namespace App\Http\Middleware; use Closure; class AfterMiddleware { public function handle($request, Closure $next) { $response = $next($request); // 应用请求之后执行一些任务 return $response; } }
3. Penggunaan middleware
Penggunaan global middleware
//在app\Http\Kernel.php中的$middleware内添加 protected $middleware = [ // \App\Http\Middleware\TrustHosts::class, .... .... \Illuminate\Foundation\Http\Middleware\ConvertEmptyStringsToNull::class, //这是之前定义的 \App\Http\Middleware\CheckToken::class, ];
Gunakan middleware kumpulan
//在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');
Gunakan perisian tengah secara individu
protected $routeMiddleware = [ ..., 'myself'=> \App\Http\Middleware\CheckToken::class, ]; Route::get('/user', function () { // })->middleware('myself');
Disyorkan tutorial video berkaitan: Laravel Tutorial Video
Atas ialah kandungan terperinci Penjaga laravel world-middleware. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!