1.控制器方法中自定义
$this->middleware(function ($request, $next) { return $next($request); });
2.控制器方法中调用
注册中间件
lumen:
$app->routeMiddleware([ 'auth' => AppHttpMiddlewareAuthenticate::class, 'UserCheck' => AppHttpMiddlewareUserCheck::class, ]);
laravel:appHttpKernel.php
protected $routeMiddleware = [ 'auth' => AppHttpMiddlewareAuthenticate::class, 'SensitiveFilter' => AppHttpMiddlewareUserCheck::class ]; /** * The priority-sorted list of middleware. * * This forces non-global middleware to always be in the given order. * * @var array */ protected $middlewarePriority = [ AppHttpMiddlewareAuthenticate::class, AppHttpMiddlewareUserCheck::class, ];
$this->middleware('UserCheck');
UserCheck中间件:appHttpMiddlewareUserCheck.php
<?php namespace AppHttpMiddleware; use Closure; class UserCheck { /** * Handle an incoming request. * * @param IlluminateHttpRequest $request * @param Closure $next * @return mixed */ public function handle($request, Closure $next) { $path = $request->route(); $actionArr = getAction($path); $staffInfo = getLoginInfo(); if(empty($staffInfo['info'])) { return response()->json(['code' => $actionArr['action'].':fail','errMsg' => '用户可能已经被删除']); } if(!empty($staffInfo['info']['tmp'])) { //锁定状态的用户信息不可以提交修改 $lock = $staffInfo['info']['tmp']['lock']; if($request->isMethod('post')) { if($lock == 1) { return response()->json(['code' => $actionArr['action'].':fail','errMsg' => '用户信息已经锁定,请等待人事审核']); } } } $request->attributes->add(['staffInfo'=>$staffInfo]); return $next($request); } }