Slim Framework返回响应而没有'return $ response'

时间:2016-10-22 11:14:55

标签: php slim

我对Slim如何根据文档返回没有return $response的回复感到困惑。

如果我有以下代码:

$app->get('/login', function ($request, $response, $args) {

    $response = $this->view->render($response, "login.php");
    return $response;  
});

当我通过浏览器拨打/login时,它会呈现我的login.php模板,这就是我所期望的。

但是,如果我删除return $response它仍然有用这似乎不正确吗?

$app->get('/login', function ($request, $response, $args) {

    $response = $this->view->render($response, "login.php"); 
});

两组代码都有相同的输出。

如果$response 被退回,Slim如何显示回复?

1 个答案:

答案 0 :(得分:1)

当你向正常身体贴上一些东西时,身体是Psr\Http\Message\StreamInterface并不是永恒的:

$body = $response->getBody();
$body->write($string);
$body->write($string2);

这会更改流的内容,但仍然在同一个$response - 对象中。

由于视图渲染器仅附加到正文,因此无需实际返回$response