定义一个中间件:
namespace app\index\middleware;
class Check
{
public function handle($request,\Closure $next, $name){
echo "midd-check";
return $next($request);
}
}
config/middleware.php 注册中间件
return [
// 默认中间件命名空间
'default_namespace' => 'app\\http\\middleware\\',
'check' => 'app\index\middleware\Check:class',
];
控制器中使用中间件: only和except
控制器必须继承think\controller;因为controller中有registerMiddleware,注册的就是$middleware数组中的中间件
namespace app\index\controller;
use think\Controller;
use app\index\middleware\Check;
class MiddlewareTest extends Controller
{
protected $middleware = [
'check' => ['only' => ['hello'] ],
];
public function hello(){
echo 'middleware-hello';
}
}