TP6 控制器向中间件传参
在ThinkPHP 6框架中,控制器可以通过middleware
方法向中间件传递参数。这通常是通过中间件定义时的参数列表来实现的。
以下是一个示例:
首先,定义中间件并在中间件类中接收参数:
// app/middleware/CheckUser.php
namespace app\middleware;
class CheckUser
{
public function handle($request, \Closure $next, $userId)
{
// 中间件的逻辑,使用$userId进行用户验证
// ...
return $next($request); // 继续执行下一个中间件或控制器动作
}
}
然后,在控制器中绑定中间件并传参:
// app/controller/UserController.php
namespace app\controller;
use think\Controller;
class UserController extends Controller
{
protected $middleware = [
'CheckUser' => ['except' => ['login', 'register'], 'params' => [123]]
];
public function login()
{
// 登录逻辑
}
public function register()
{
// 注册逻辑
}
public function index()
{
// 用户信息逻辑,需要通过中间件验证用户
}
}
在上述代码中,CheckUser
中间件被绑定到 UserController
控制器上,并且在控制器的方法中除了 login
和 register
之外都会执行这个中间件,并且传递了参数 123
。
注意:实际的中间件参数应根据中间件的实际需求进行定义,上面的例子中使用了一个假设的 $userId
参数。
评论已关闭