middleware

浏览:1081 发布日期:2020/05/02 分类:求助交流
(1)--baseController.php
/**
* 控制器中间件
* @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);
}
}

这两种方式 有什不同??? 全局中间件 跟 控制器中间件 有什不同???
最佳答案
评论( 相关
后面还有条评论,点击查看>>