diff --git a/src/Http/Controller/AbstractHtmlController.php b/src/Http/Controller/AbstractHtmlController.php
index 1bbb7463d..2f56ed7ef 100644
--- a/src/Http/Controller/AbstractHtmlController.php
+++ b/src/Http/Controller/AbstractHtmlController.php
@@ -11,28 +11,30 @@
namespace Flarum\Http\Controller;
+use Illuminate\Contracts\Support\Renderable;
use Psr\Http\Message\ServerRequestInterface as Request;
-use Zend\Diactoros\Response;
+use Zend\Diactoros\Response\HtmlResponse;
abstract class AbstractHtmlController implements ControllerInterface
{
/**
* @param Request $request
- * @return \Zend\Diactoros\Response
+ * @return HtmlResponse
*/
public function handle(Request $request)
{
$view = $this->render($request);
- $response = new Response;
- $response->getBody()->write($view);
+ if ($view instanceof Renderable) {
+ $view = $view->render();
+ }
- return $response;
+ return new HtmlResponse($view);
}
/**
* @param Request $request
- * @return \Illuminate\Contracts\Support\Renderable
+ * @return string|Renderable
*/
abstract protected function render(Request $request);
}