想问一下lumen中间件获取参数的问题。
在公司实习需要用到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()来获取,请问有大牛遇到过这个问题吗?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
如果你是lumen5.4+在中间件儿里面 你可以通过访问以下方式得到Get的值
楼上的情形已经是正规的url, 这情况下get当然有数据.
但假设为 /app/user/{id} , 此时就无法直接取这id了. 暂只能用非正常方法取$request->route()[2]["id"].
来自:https://stackoverflow.com/que...