webman引入thinkphp的验证器如何对get路由的参数进行验证

jsw918

问题描述

webman引入了thinkphp的验证器,同时设置一个get路由,如/artice/read/{id:\d+},我想在验证器层对id参数进行验证,使用规则 'id' => 'require|number', 但是无效,请问如何解决?

protected $rules =   [
    'id' => 'require|number',
];
protected $message  =   [
    'id.require' => 'id不存在',
    'id.number' => '非法id',
];

对 /article/read/1 这样的路由
在控制器层手动调用 $validator->check(['id'=>$id]); 这个没有问题

但是我想在其它地方对此验证进行统一处理,想通过 request()->get() 这样的方式进行获取请求参数,实际运行时根本不起作用,
查阅文档说get请求的pathinfo中的参数必须在对应方法中写对应的参数,这样的话如何进行统一处理呢?

1045 1 1
1个回答

jsw918

已解决,对于get请求,无论是pathInfo方式或queryString方式统一进行如何获取对应的参数

$params = !empty(request()->get()) ? request()->get() : request()->->route->param();
  • 暂无评论
年代过于久远,无法发表回答
×
🔝