日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

laravel5.5中间件

發(fā)布時(shí)間:2023/12/10 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 laravel5.5中间件 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

目錄

  • 1. 中間件知識(shí)
    • 1. artisan 命令
    • 2. 文件內(nèi)容
    • 3. 前置中間件和后置中間件
    • 4. 使用中間件
  • 2. 控制器中間件

1. 中間件知識(shí)

1. artisan 命令

php artisan make:middleware CheckAge

2. 文件內(nèi)容

<?phpnamespace App\Http\Middleware;use Closure;class CheckAge {public function handle($request, Closure $next){if ($request->age <= 200) {return redirect('home');}//還可以進(jìn)行一些其他的判定return $next($request);}}

3. 前置中間件和后置中間件

前置中間件和后置中間件區(qū)別在于執(zhí)行動(dòng)作在$next($request)之前還是之后

//前置中間件public function handle($request, Closure $next){// 執(zhí)行動(dòng)作,在$next($request)之前$response = $next($request);return $response;} //后置中間件public function handle($request, Closure $next){$response = $next($request);// 執(zhí)行動(dòng)作在$next($request)之后,return之前return $response;}

4. 使用中間件

  • 全局中間件

只需在 app/Http/Kernel.php 類中的 $middleware 屬性里列出這個(gè)中間件類 。

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'); //分配多個(gè)中間件: 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',], ]; //一次為路由分配多個(gè)中間件 Route::get('/', function () {// })->middleware('web');Route::group(['middleware' => ['web']], function () {// });

2. 控制器中間件

中間件 可以在路由文件中被分配給控制器路由:

Route::get('profile', 'UserController@show')->middleware('auth');

但是,在控制器的構(gòu)造方法中指定中間件會(huì)更方便。使用控制器構(gòu)造函數(shù)中的 middleware 方法,你可以很容易地將中間件分配給控制器的行為。你甚至可以約束中間件只對(duì)控制器類中的某些特定方法生效:

class UserController extends Controller {/*** 實(shí)例化一個(gè)新的控制器實(shí)例。** @return void*/public function __construct(){$this->middleware('auth');$this->middleware('log')->only('index');$this->middleware('subscribed')->except('store');} }

還能使用閉包來(lái)為控制器注冊(cè)中間件。閉包的方便之處在于,你無(wú)需特地創(chuàng)建一個(gè)中間件類來(lái)為某一個(gè)特殊的控制器注冊(cè)中間件:

$this->middleware(function ($request, $next) {// ...return $next($request); });

轉(zhuǎn)載于:https://www.cnblogs.com/redirect/p/8435818.html

總結(jié)

以上是生活随笔為你收集整理的laravel5.5中间件的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。