slim框架如何获得query参数?

在slim框架中:

<?php
namespace Test\SDK\Sample;

require __DIR__ . '/../vendor/autoload.php';

use Psr\Http\Message\ResponseInterface as Response;
use Psr\Http\Message\ServerRequestInterface as Request;
use Slim\Factory\AppFactory;

$app = AppFactory::create();


$app->get('/hello/{name}', function (Request $request, Response $response, array $args) {
    $name = $args['name'];
    $response->getBody()->write("Hello, $name");
    return $response;
});

我们可以访问:
http://localhost:8080/hello/bob
image.png

请问如何在slim获得query参数呢,比如访问:

http://localhost:8080/hello/bob?aaa=111&bbb=222

搜索无结果。

阅读 716
1 个回答

可通过如下方式获取:

<?php
namespace Test\SDK\Sample;
require __DIR__ . '/../vendor/autoload.php';
use Psr\Http\Message\ResponseInterface as Response;
use Psr\Http\Message\ServerRequestInterface as Request;
use Slim\Factory\AppFactory;

$app = AppFactory::create();

$app->get('/hello/{name}', function (Request $request, Response $response, array $args) {
    // 获取路径参数
    $name = $args['name'];
    
    // 获取查询参数
    $queryParams = $request->getQueryParams();
    
    // 获取特定的查询参数
    $aaa = isset($queryParams['aaa']) ? $queryParams['aaa'] : null;
    $bbb = isset($queryParams['bbb']) ? $queryParams['bbb'] : null;
    
    // 构建响应字符串
    $greeting = "Hello, $name";
    if ($aaa !== null && $bbb !== null) {
        $greeting .= " - aaa: $aaa, bbb: $bbb";
    }
    
    // 将响应写入响应体
    $response->getBody()->write($greeting);
    return $response;
});

$app->run();
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题