我有问题。 没有$ item时,我需要抛出404错误(请参见代码)。
class HomeHandler implements RequestHandlerInterface
{
private $template;
private $dataService;
public function __construct(
Template\TemplateRendererInterface $template = null,
DataServiceInterface $dataService
) {
$this->template = $template;
$this->dataService = $dataService;
}
public function handle(ServerRequestInterface $request) : ResponseInterface
{
$alias = $request->getAttribute('alias', '');
$item = $this->dataService->getItem($alias);
if(!isset($item)) {
// Here you need to throw 404 error
}
return new HtmlResponse($this->template->render('app::home-page', $item));
}
}
我使用Zend Expressive 3。
感谢您的任何想法
答案 0 :(得分:2)
您可以返回带有特定状态代码的HTML响应:
if (!$item) {
return new HtmlResponse($this->template->render('error::404'), 404);
}
调整模板以使其指向适当的位置。