我有以下代码:
<?php
use Zend\Diactoros\Response;
$response = new Response('This is the response content');
echo $response->getBody()->getContents();
echo $response->getBody();
我在构造函数中直接传递了主体。
我正在尝试获取此响应的主体,仅此而已,但是当我调用 getBody()或 getBody() - &gt; getContents()时/ strong>它给我一个空字符串。
我尝试了另一种有效的替代方案:
<?php
use Zend\Diactoros\Response;
$response = new Response;
$response->getBody()->write('This is the response content');
echo $response->getBody()->getContents();
echo $response->getBody();
并输出:
这是响应内容这是响应内容
为什么第一个和简短的表单不起作用?
答案 0 :(得分:0)
我发现了问题,这是我的错。
实际上,Response __constructor获取StreamInterface作为第一个参数,而不是字符串。
StreamInterface实现是你必须写你的身体的地方,否则,你没有得到回应。
这是一个好方法:
$stream = new Stream('php://temp', 'rw');
$stream->write('This is a response');
$response = (new Response($stream));
echo $response->getBody();