다음 laravel 튜토리얼 칼럼에서는 Laravel의 세 가지 미들웨어 기능을 소개하겠습니다. 도움이 필요한 친구들에게 도움이 되길 바랍니다!
이전에는 미들웨어는 미들웨어에 미들웨어를 더하는 것이라고만 생각했습니다. 이제 저는 세 가지 유형의 미들웨어가 있다는 것을 알았습니다. 즉: $middleware $middlewareGroup $routeMiddleware 정보를 참조한 후 마침내 이 세 가지 유형의 기능과 차이점을 이해했습니다.
첫 번째 유형인 global middleware/$middleware:
모든 미들웨어는 우리가 요청할 때마다 실행됩니다.
두 번째 유형인 routing middleware/$routeMiddleware:
이 속성에 정의된 미들웨어는 경로 정의 시에만 참조할 수 있습니다.
우리가 정의한 라우팅 미들웨어라고 가정해보세요:
protected $routeMiddleware = [ ... 'auth' => \Illuminate\Auth\Middleware\Authenticate::class, ];
IlluminateAuthMiddlewareAuthenticate::class를 사용하려면 이 미들웨어를 다음과 같이 작성해야 합니다:
Route::get('hello/laravel-china','XXController@index')->middleware('auth');
라우트를 정의할 때 미들웨어 메소드를 호출하고 매개변수 값은 다음과 같습니다. auth.Access this를 라우팅하면 미들웨어가 실행됩니다.
세 번째 유형인 Middleware Groups/$middlewareGroups:
위의 라우팅 미들웨어를 보면 이렇게 라우팅 미들웨어를 추가하는 것이 100 For 미들웨어를 실행하려면 매우 번거롭다는 것을 느낄 수 있습니다. 경로를 정의할 때 100을 추가해야 합니다. 하지만 미들웨어 그룹과 함께라면 그렇게 번거로울 필요는 없습니다! 미들웨어 그룹이 어떻게 정의되는지 살펴보겠습니다.
protected $middlewareGroups = [ 'web' => [ \App\Http\Middleware\EncryptCookies::class, ... ], 'api' => [ ... ], ];
위의 예는 미들웨어 그룹의 형식을 정의하는 것입니다. 예를 들어 키 값 web은 여러 미들웨어로 구성된 배열에 해당합니다.
경로를 선언해야 할 경우 다음과 같이 호출하면 됩니다.
Route::group(['middleware' => 'web'],function($route){ $route->get('hello/world',function(){}); $route->get('hello/php',function(){}); // 这样在访问这个这些路由的时候,就会执行中间件组 web 所对应的中间件! });
** 요약:
$middleware/global middleware, 모든 요청에 대해 일부 처리가 필요한 경우 이 속성에 정의하는 것이 적합합니다. (예를 들어 요청 수 계산)
$middlewareGroups/Middleware Groups 예를 들어 우리 프로젝트에 API 요청과 웹 요청이 있는 경우 두 가지 유형의 요청 미들웨어를 분리해야 합니다. 이때 미들웨어가 필요합니다. 그룹화.
$routeMiddleware/routing middleware, 일부 개별 요청의 경우, 특별한 미들웨어를 실행해야 하는 경우 이 속성에 정의하는 것이 적합합니다. **
관련 권장 사항: 최신 5개 Laravel 비디오 튜토리얼
위 내용은 Laravel의 세 가지 미들웨어 기능의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!