想问一下lumen中间件获取参数的问题。

发布于 2022-09-04 23:46:29 字数 991 浏览 20 评论 0

在公司实习需要用到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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

别闹i 2022-09-11 23:46:29

如果你是lumen5.4+在中间件儿里面 你可以通过访问以下方式得到Get的值

// 网址:http://www.domain.com/test?p=test
$request->get('p');// 输出:test
或者
$request->all();// 输出:[p=>'test']

图片描述图片描述

蝶…霜飞 2022-09-11 23:46:29

楼上的情形已经是正规的url, 这情况下get当然有数据.
但假设为 /app/user/{id} , 此时就无法直接取这id了. 暂只能用非正常方法取$request->route()[2]["id"].
来自:https://stackoverflow.com/que...

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文