定義一箇中間件:
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';
}
}