如何在 Zend Expressive 中抛出 404 错误?
How to throw 404 error in a Zend Expressive?
我有问题。
当我没有得到 $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。
感谢您的任何想法
您可以 return HTML 具有特定状态代码的响应:
if (!$item) {
return new HtmlResponse($this->template->render('error::404'), 404);
}
调整模板以指向合适的位置。
我有问题。 当我没有得到 $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。
感谢您的任何想法
您可以 return HTML 具有特定状态代码的响应:
if (!$item) {
return new HtmlResponse($this->template->render('error::404'), 404);
}
调整模板以指向合适的位置。