Laravel ミドルウェア
目次
作æˆ
自動生æˆ
php artisan make:middleware MyMiddleware
リクエスト拡張
class MyMiddleware
{
 public function handle($request, Closure $next)
 {
  before処ç†
  リクエストã«msgè¦ç´ を追åŠ
  $request->merge([
   'msg' => 'Laravel'
  ]);
  return $next($request);
 }
}
class MyMiddleware
{
 public function handle($request, Closure $next)
 {
  before処ç†
  $request->merge([
   〜
  ]);
  $response = $next($request);
  after処ç†
  $content = $response->content();
  $content .= '<style>body { background-color: red; }</style>';
  $response->setContent($content);
  return $response;
 }
}
使用
コントãƒãƒ¼ãƒ©ã§ã¯ä½•ã‚‚ã—ãªã„
class MyServiceController extends Controller
{
 public function index(Request $request)
 {
  return $request->msg;
  →Laravel
 }
}
é©ç”¨
ルーティングè¨å®š
※\routes\web.php
use App\Http\Middleware\MyMiddleware;
Route::get('/myservice', [MyServiceController::class, 'index'])->middleware(MyMiddleware::class);
ã‚°ãƒãƒ¼ãƒãƒ«ãƒŸãƒ‰ãƒ«ã‚¦ã‚§ã‚¢
※\routes\web.php
use App\Http\Middleware\MyMiddleware;
Route::get('/myservice', [MyServiceController::class, 'index'])->middleware('test');
※\app\Http\Kernel.php
class Kernel extends HttpKernel
{
 protected $middlewareGroups = [
  'web' => [
   〜
  ],
  'api' => [
   〜
  ],
  'test' => [
   \App\Http\Middleware\MyMiddleware::class,
  ],
 ];
}