【问题标题】:Slim 3 - how to get all get/ put/ post variables?Slim 3 - 如何获取所有 get/put/post 变量?
【发布时间】:2015-12-16 13:22:36
【问题描述】:

我如何获得all get/ put/ post 变量,如 Slim 2 中的 Slim 3?

苗条2,

$allGetVars = $app->request->get();
$allPutVars = $app->request->put();
$allPostVars = $app->request->post();

如何在 Slim 3 中做到这一点?

例如,http://example.com/books/1?title=hello&content=world

我现在如何在 Slim 3 中获取 titlecontent 中的参数?

苗条2,

$title = $app->request->get('title');
$content = $app->request->get('content');

如何在 Slim 3 中做到这一点?

【问题讨论】:

    标签: slim slim-3 psr-7


    【解决方案1】:

    Request Uri:getQueryParams()

    Request Body:getBody()/getParsedBody()

    这不是您正在寻找的,但它非常接近。

    【讨论】:

      【解决方案2】:

      获取所有get/put/post参数:

      //GET
      $allGetVars = $request->getQueryParams();
      foreach($allGetVars as $key => $param){
         //GET parameters list
      }
      
      //POST or PUT
      $allPostPutVars = $request->getParsedBody();
      foreach($allPostPutVars as $key => $param){
         //POST or PUT parameters list
      }
      

      单个参数值:

      //Single GET parameter
      $getParam = $allGetVars['title'];
      
      //Single POST/PUT parameter
      $postParam = $allPostPutVars['postParam'];
      

      【讨论】:

      • 谢谢伙计!很难找到这个
      • 你好。它对我不起作用。唯一“起作用”的是$request->getHeaders();,它添加了 HTTP_ 作为前缀。例如,如果我使用 length 作为 post 参数,使用 getHeaders() 我会得到 HTTP_LENGTH。我不明白为什么。 getParsedBody() 基本上返回 NULL。谢谢! PS:最奇怪的是:如果我做$request->hasHeader('length'),我得到了我的参数的值。
      • @TDK 您如何发送请求以及您使用的是哪个版本的 Slim?
      • @Davide 我正在使用 Slim 3,我正在通过 Advanced REST client 发送 POST 请求来测试它。
      • 为什么这么复杂?我也可以使用普通的旧$_GET
      【解决方案3】:

      获取所有请求参数:

      $request->getParams() 
      

      【讨论】:

        【解决方案4】:

        您可以使用map() 方法将get、post 和put 组合到一个路由中。

        $app->map(['GET', 'POST', 'PUT'], function(Request $request, Response $response, array $args)) { }
        

        第一个参数是要匹配的 HTTP 方法的数组。第二个参数是处理请求的函数;传递请求、响应和参数数组。

        【讨论】:

        • 这没有回答问题。
        猜你喜欢
        • 2016-08-30
        • 1970-01-01
        • 1970-01-01
        • 2023-01-11
        • 1970-01-01
        • 2010-10-21
        • 1970-01-01
        • 2010-12-29
        • 1970-01-01
        相关资源
        最近更新 更多