全局中间件如何接收路径参数

这是我所定义的路由

Route::get('/getByCode/{code}', 'OrgController@getByCode')->name('org.getByCode');\

这是我所定义的中间件

public function handle($request, Closure $next)
{
  return $next($this->encrypt($request));
}

我的想法是在中间件中获取到前端发送过来的所有参数,但我发现当我直接使用 $request->all()是无法获取到路径参数的,即使我使用了以下方法,也未解决

# 这里需要接收的参数是 code
$request->code
\Route::input('code')
request()->route('code')
StuChoChik
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
最佳答案
$request->segments();
4年前 评论
StuChoChik (楼主) 4年前
W-W (作者) 4年前
讨论数量: 4
  • 如果要获取你定义的路由中的可变参数值,可以通过打印 $request->route()->parameters() 来查看你定义的变量参数值,该方法就可以打印出你的code值,需要匹配的是当前路由哦;
  • 如果是获取POST请求数据或者GET请求?后面的请求参数,可以通过打印 $request->all() 来查看请求参数值;
4年前 评论
StuChoChik (楼主) 4年前
mengdodo
public function handle($request, Closure $next){
        $currentUrl = \URL::full();    // "http://xxx.com/aaa/bbb/step1"
        $routeName = \Request::route()->getName();   // "user.index"
        $getPrefix = $request->route()->getPrefix(); //get prefix name
        ……
 }
4年前 评论
StuChoChik (楼主) 4年前
$request->segments();
4年前 评论
StuChoChik (楼主) 4年前
W-W (作者) 4年前
JaguarJack

全局中间件是拿不到路由的参数。从打印 Request 来看,全局中间件应该是在路由解析之前

4年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!