gpt4 book ai didi

slim - 在 Slim Framework 3 中检索查询字符串参数

转载 作者:行者123 更新时间:2023-12-01 00:45:30 26 4
gpt4 key购买 nike

我有一个 get表格中的路线

$app->get('/redirect[/{subject}]', function ($request, $response, $args) {

});

如果我向 /redirect/server?site=local&name=john 提出请求

我可以得到 subject正确的
$request->getAttribute('subject')

但是,我无法获取查询参数。如果我检查 $request->getQueryParams()我得到:
[
'/redirect/server?site' => 'local',
'name' => 'john'
]

而我希望查询参数是
[
'site' => 'local',
'name' => 'john'
]

我究竟做错了什么?也许我应该指定 url 参数不能接受问号?

编辑 1

我被要求发布我的网络服务器配置。明天我将可以访问那台开发机器,所以这只是提醒我自己添加上述信息。 然而 @jmattheis 已经给了我一个提示。

Slim Framework 3 setup for nginx大致说一下
location / {
try_files $uri /index.php$is_args$args;
}

而我正在使用曾经在某个时间点建议用于 slim 2 的重写片段:
location / {
try_files $uri $uri/ /index.php?$request_uri;
}

多年来,此配置对我来说一直很好用,但碰巧我从未尝试解析问号之后的任何内容。就在我刚刚创建了一个废弃的项目,我正在尝试转换原始项目 $_REQUEST解析成 Slim 路由方法。

编辑 2

该项目的代码库位于 repo phpPgAdmin6 中.它基本上是 phpPgAdmin 的一个分支没有路由逻辑,所以我试图在给定的范围内集中请求和响应,并使用 Slim 本地方法解析查询字符串。

最佳答案

正如你发现你需要使用

location / {
try_files $uri /index.php$is_args$args;
}

代替
location / {
try_files $uri $uri/ /index.php?$request_uri;
}

第二个将整个请求 uri 添加为查询参数,这将导致类似这样的结果
index.php?/redirect/server?site=local&name=john

因为那个 /redirect/server?site作为查询键给出。

关于slim - 在 Slim Framework 3 中检索查询字符串参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45384082/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com