我正在尝试动态获取请求参数名称和值,但数组始终为空。这是获取路线:
$app->get('/get/profile/:id_user', function ($id_user) use ($app) {
print_r($app->request()->params());
});
这就是我从浏览器中调用它的方式:
http://localhost/get/profile/9492
这应该返回一个id_user => 9492
的数组,但它是空的。
任何想法为什么?
答案 0 :(得分:4)
注意:请在尝试此代码之前阅读更新说明。更新说明是我在这个答案中的第一个评论。
无法测试,但请尝试以下操作:
$app->get('/get/profile/:id_user', function ($id_user) use ($app) {
$req = $app->request();
print_r($req->params());
});
参考文档:http://docs.slimframework.com/#Request-Method
更新:好的,经过一番挖掘后发现,params()
方法需要一个参数。如果在没有参数的情况下调用,则引发通知。检查源显示没有参数调用的此函数返回null。请参阅Http/Request.php
第199行。由于某些原因,currying似乎无法检索参数,因此您必须使用具有预期值的函数参数$id_user
。
答案 1 :(得分:3)
您可以使用以下内容:
$app->get("/test.:format/:name",function() use ($app){
$router = $app->router();
print_r($router->getCurrentRoute()->getParams());
});
答案 2 :(得分:0)
也是配置问题。
尝试
try_files $uri $uri/ /index.php?$query_string;