laravel5.5中间件
生活随笔
收集整理的這篇文章主要介紹了
laravel5.5中间件
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
目錄
- 1. 中間件知識
- 1. artisan 命令
- 2. 文件內容
- 3. 前置中間件和后置中間件
- 4. 使用中間件
- 2. 控制器中間件
1. 中間件知識
1. artisan 命令
php artisan make:middleware CheckAge2. 文件內容
<?phpnamespace App\Http\Middleware;use Closure;class CheckAge {public function handle($request, Closure $next){if ($request->age <= 200) {return redirect('home');}//還可以進行一些其他的判定return $next($request);}}3. 前置中間件和后置中間件
前置中間件和后置中間件區別在于執行動作在$next($request)之前還是之后
//前置中間件public function handle($request, Closure $next){// 執行動作,在$next($request)之前$response = $next($request);return $response;} //后置中間件public function handle($request, Closure $next){$response = $next($request);// 執行動作在$next($request)之后,return之前return $response;}4. 使用中間件
- 全局中間件
只需在 app/Http/Kernel.php 類中的 $middleware 屬性里列出這個中間件類 。
protected $middleware = [\Illuminate\Foundation\Http\Middleware\CheckForMaintenanceMode::class,\Illuminate\Foundation\Http\Middleware\ValidatePostSize::class,//更多。。。];- 特定路由中間件
只需在 app/Http/Kernel.php 類中的 $routeMiddleware 屬性里添加,然后在路由中分配給路由
protected $routeMiddleware = ['auth' => \Illuminate\Auth\Middleware\Authenticate::class,'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class,//更多。。。 ]; //給路由分配中間件 Route::get('admin/profile', function () {// })->middleware('auth'); //分配多個中間件: Route::get('/', function () {// })->middleware('first', 'second');- 中間件組
只需在 app/Http/Kernel.php 類中的 $middlewareGroups 屬性里添加,然后在路由中分配給路由
protected $middlewareGroups = ['web' => [\App\Http\Middleware\EncryptCookies::class,\Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,\Illuminate\Session\Middleware\StartSession::class,\Illuminate\View\Middleware\ShareErrorsFromSession::class,\App\Http\Middleware\VerifyCsrfToken::class,\Illuminate\Routing\Middleware\SubstituteBindings::class,],'api' => ['throttle:60,1','auth:api',], ]; //一次為路由分配多個中間件 Route::get('/', function () {// })->middleware('web');Route::group(['middleware' => ['web']], function () {// });2. 控制器中間件
中間件 可以在路由文件中被分配給控制器路由:
Route::get('profile', 'UserController@show')->middleware('auth');但是,在控制器的構造方法中指定中間件會更方便。使用控制器構造函數中的 middleware 方法,你可以很容易地將中間件分配給控制器的行為。你甚至可以約束中間件只對控制器類中的某些特定方法生效:
class UserController extends Controller {/*** 實例化一個新的控制器實例。** @return void*/public function __construct(){$this->middleware('auth');$this->middleware('log')->only('index');$this->middleware('subscribed')->except('store');} }還能使用閉包來為控制器注冊中間件。閉包的方便之處在于,你無需特地創建一個中間件類來為某一個特殊的控制器注冊中間件:
$this->middleware(function ($request, $next) {// ...return $next($request); });轉載于:https://www.cnblogs.com/redirect/p/8435818.html
總結
以上是生活随笔為你收集整理的laravel5.5中间件的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 安装kali linux 2017.1
- 下一篇: 计算机会计学实验报告,计算机会计学实验报