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); }