PHP Slim,返回响应时出现问题

zas*_*saz 4 php slim

我正在尝试使用 Response 对象返回一些内容。这些是实现的接口:

use Psr\Http\Message\ResponseInterface as Response;
use Psr\Http\Message\ServerRequestInterface as Request;
use Slim\Factory\AppFactory;
Run Code Online (Sandbox Code Playgroud)

然后,在 GET 函数中,我创建自己的 JSON,并尝试将其作为响应返回:

$app->get('/getpersons', function(Request $request, Response $response, $args){
    $person= new stdClass();

    $person->id = 1;
    $person->name='Name example';
    $person->address = 'Street example';


    return $response->getBody()->write(json_encode($person));
});
Run Code Online (Sandbox Code Playgroud)

但我收到下一个错误:

Return value of Slim\Handlers\Strategies\RequestResponse::__invoke() must
implement interface Psr\Http\Message\ResponseInterface
Run Code Online (Sandbox Code Playgroud)

我不知道发生了什么事。有什么帮助吗?

zas*_*saz 5

解决了!必须这样写:

$response->getBody()->write(json_encode($person));
return $response;
Run Code Online (Sandbox Code Playgroud)