$response->getBody()->getContents() 返回空字符串
$response->getBody()->getContents() returning empty string
我有以下代码:
<?php
use Zend\Diactoros\Response;
$response = new Response('This is the response content');
echo $response->getBody()->getContents();
echo $response->getBody();
我直接在构造函数中传递正文。
我正在尝试获取此响应的正文,仅此而已,但是当我调用 getBody() 或 getBody() 时->getContents() 它给了我一个空字符串。
我尝试了另一种有效的替代方法:
<?php
use Zend\Diactoros\Response;
$response = new Response;
$response->getBody()->write('This is the response content');
echo $response->getBody()->getContents();
echo $response->getBody();
它输出:
This is the response content This is the response content
为什么第一个和简短的格式不起作用?
我发现了问题,那是我的错。
实际上,响应 __constructor 获取 StreamInterface 作为第一个参数,而不是字符串。
StreamInterface 实现是您必须编写正文的地方,否则,您将得不到任何响应。
这是个好方法:
$stream = new Stream('php://temp', 'rw');
$stream->write('This is a response');
$response = (new Response($stream));
echo $response->getBody();
我有以下代码:
<?php
use Zend\Diactoros\Response;
$response = new Response('This is the response content');
echo $response->getBody()->getContents();
echo $response->getBody();
我直接在构造函数中传递正文。
我正在尝试获取此响应的正文,仅此而已,但是当我调用 getBody() 或 getBody() 时->getContents() 它给了我一个空字符串。
我尝试了另一种有效的替代方法:
<?php
use Zend\Diactoros\Response;
$response = new Response;
$response->getBody()->write('This is the response content');
echo $response->getBody()->getContents();
echo $response->getBody();
它输出:
This is the response content This is the response content
为什么第一个和简短的格式不起作用?
我发现了问题,那是我的错。
实际上,响应 __constructor 获取 StreamInterface 作为第一个参数,而不是字符串。
StreamInterface 实现是您必须编写正文的地方,否则,您将得不到任何响应。
这是个好方法:
$stream = new Stream('php://temp', 'rw');
$stream->write('This is a response');
$response = (new Response($stream));
echo $response->getBody();