在公司实习需要用到lumen开发接口,决定恶补一下lumen,期间遇到一个巨坑!
不管是官方最新5.4英文文档还是中文5.3文档,lumen在中间件里获取参数都是用的input方法,文档demo如下:
<?php
namespace App\Http\Middleware;
use Closure;
class OldMiddleware
{
/**
* 运行请求过滤器。
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @return mixed
*/
public function handle($request, Closure $next)
{
if ($request->input('age') <= 200) {
return redirect('home');
}
return $next($request);
}
}
但是在实际过程中,我发现input()根本获取不到!
google这个问题才发现问题所在:
*There are some conventional ways in Laravel doesn’t work on Lumen. And get parameter form URI in middleware is one of them. In Laravel, I just need to call $request->id, it will work like magic. But here in order to get parameter in Lumen, I need to do something like this:
$request->route()2*
原来lumen没有这个方法,只能用$request->route()来获取,请问有大牛遇到过这个问题吗?
如果你是lumen5.4+在中间件儿里面 你可以通过访问以下方式得到Get的值