Laravel-路由組和中介軟體
摘要:
Laravel-路由組和中介軟體
標籤(空格分隔): php
定義路由組
Route::group(['prefix'=>'Anime'], function(){
Rout::match(['get', 'po...
Laravel-路由組和中介軟體
標籤(空格分隔): php
定義路由組
Route::group(['prefix'=>'Anime'], function(){ Rout::match(['get', 'post'], 'login', 'Admin\LoginController@login) Route::group(['middleware'=>'CheckToken', function(){ Rout::match(['get', 'post'], 'index','Admin\LoginController@index) }) }); prefix : 路由字首對應生成的路由是 /Anime/login match: http請求方式 get | post | delete middleware : 中介軟體
中介軟體
1 要建立一個新的中介軟體,可以通過 Artisan 命令 make:middleware: php artisan make:middleware CheckToken 2 生成檔案的位置在 app\Http\Middleware\CheckToken.php 在 handle 方法裡完成你的中介軟體 如:登入驗證, 記錄日誌 handle分為 :中介軟體之前/之後
3 註冊中介軟體 app\Http\Kernel.php 註冊在 routeMiddleware 陣列中: <?php namespace App\Http; use Illuminate\Foundation\Http\Kernel as HttpKernel; class Kernel extends HttpKernel { /** * The application's global HTTP middleware stack. * * These middleware are run during every request to your application. * * @var array */ ###全域性的中介軟體 protected $middleware = [ \Illuminate\Foundation\Http\Middleware\CheckForMaintenanceMode::class, \Illuminate\Foundation\Http\Middleware\ValidatePostSize::class, \App\Http\Middleware\TrimStrings::class, \Illuminate\Foundation\Http\Middleware\ConvertEmptyStringsToNull::class, ]; /** * The application's route middleware groups. * * @var array */ ## 中介軟體組 \routes\ web => web.phpapi=> api.php 檔案中所有的路由都必須通過中介軟體的處理 protected $middlewareGroups = [ 'web' => [ \App\Http\Middleware\EncryptCookies::class, \Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class, \Illuminate\Session\Middleware\StartSession::class, // \Illuminate\Session\Middleware\AuthenticateSession::class, \Illuminate\View\Middleware\ShareErrorsFromSession::class, \App\Http\Middleware\VerifyCsrfToken::class, \Illuminate\Routing\Middleware\SubstituteBindings::class, \App\Http\Middleware\CheckToken::class ], 'api' => [ 'throttle:60,1', 'bindings', ], ]; /** * The application's route middleware. * * These middleware may be assigned to groups or used individually. * * @var array */ # 路由組中介軟體 protected $routeMiddleware = [ 'auth' => \Illuminate\Auth\Middleware\Authenticate::class, 'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class, 'bindings' => \Illuminate\Routing\Middleware\SubstituteBindings::class, 'can' => \Illuminate\Auth\Middleware\Authorize::class, 'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class, 'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class, 'CheckToken' => \App\Http\Middleware\CheckToken::class, ]; }