/**
* 控制器中间件
* @var array
*/
protected $middleware = [
\app\middleware\checkLogin::class,
];
////////////////////////////////////
(2)---middleware.php
<?php
// 全局中间件定义文件
return [
// 全局请求缓存
// \think\middleware\CheckRequestCache::class,
// 多语言加载
// \think\middleware\LoadLangPack::class,
// Session初始化
\think\middleware\SessionInit::class,
app\middleware\checkLogin::class,
];
/////////
----checklogin.php
<?php
declare(strict_types=1);
namespace app\middleware;
use think\facade\Session;
class CheckLogin
{
public function handle($request, \Closure $next)
{
$controller = $request->controller();
if (!Session::has('user_id')) {
if ($controller !== 'login') {
return redirect((string)url('/login/index'));
}
}
return $next($request);
}
}
这两种方式 有什不同??? 全局中间件 跟 控制器中间件 有什不同???
最佳答案