一、thinkphp6全局中间件的用法示例:
1、创建全局中间件文件:app\middleware\CheckLogin.php
<?php
namespace app\middleware;
class CheckLogin{
public function handle($request, \Closure $next) {
$module = app('http')->getName();
/*判断用户是否登陆*/
if(in_array($module, array('admin')) and empty(session('userid'))){
return '请登录';
}
return $next($request);
}
}
2、启用全局中间文件:app\middleware.php
<?php // 全局中间件定义文件 return [ // 全局请求缓存 // \think\middleware\CheckRequestCache::class, // Session初始化 \think\middleware\SessionInit::class, // 启用全局中间件 \app\middleware\CheckLogin::class ];
3、创建公共控制器:app\cn\controller\Base.php
<?php
namespace app\cn\controller;
use app\BaseController;
class Base extends BaseController{
protected $middleware = [
'auth' => ['only' => ['user/index'] ], // 只有在user/index控制器方法下启用中间件
];
}
4、创建会员中心和登录页面:app\cn\controller\User.php
<?php
namespace app\cn\controller;
class User extends Base{
public function index(){
return '会员中心';
}
public function login(){
return '登录页面';
}
}
二、thinkphp6应用中间件的用法示例:
1、创建应用中间件文件:app\cn\middleware\CheckLogin.php
<?php
namespace app\cn\middleware;
class CheckLogin{
public function handle($request, \Closure $next) {
if(empty(session('userid'))){
return '请登录';
}
return $next($request);
}
}
2、创建路由文件:app\cn\route\route.php
<?php
use think\facade\Route;
Route::group(function () {
Route::rule('user/index','user/index');//只有该控制器和方法下启用中间件
})->middleware(\app\cn\middleware\CheckLogin::class);
3、创建会员中心页面和登录页面文件:app\cn\controller\User.php
<?php
namespace app\cn\controller;
class User{
public function index(){
return '会员中心';
}
public function login(){
return '登录页面';
}
}
我的做法:
一、新建全局中间件:app\middleware\All.php
<?php
namespace app\middleware;
class All{
public function handle($request, \Closure $next) {
if(empty(session('userid'))){
return redirect(url('user/login'));
}
return $next($request);
}
}
二、应用的路由启用中间件:app\cn\route\route.php
<?php
// 路由启用中间件
Route::group(function(){
Route::rule('user/index','user/index');
})->middleware(\app\middleware\All::class);
三、新建控制器文件:app\cn\controller\User.php
<?php
namespace app\cn\controller;
class User{
/*会员中心*/
public function index(){
return 'index';
}
/*登录页面*/
public function login(){
return 'login';
}
}上一篇: 网站搜索有问题