我有以下控制器
class TitleController extends AbstractActionController {
public function showAllTitleAction() {
//Here I've some service that fetch entries from db
$data = $this->getData();
if (count($data) == 0) {
//If data is empty, get 404 code for SEO reasons.
$this->getResponse()->setStatusCode(404);
}
//Although data is empty, go on creating the specific view for this controller
$viewModel = new ViewModel($data);
$viewModel->setTemplate('application/title/template');
return $viewModel;
}
}
当我在控制器中给出404错误时,我的请求被截获,我得到了默认的404错误页面。但我只想更改HTTP状态代码,而不是内容。 (我将在输出中显示友好消息)
如何防止我的请求被默认的404页面拦截?
感谢。
答案 0 :(得分:0)
好吧,我真的不明白为什么你会这么想(如果它是404,那么就不应该有任何内容供展示),但为了争论,我想你可以:
EVENT_DISPATCH_ERROR
RouteNotFoundStrategy
事件的侦听器
你也可以走下去的路线:
希望能让你走上正轨。
供参考:
答案 1 :(得分:0)
我最终检查了引导程序事件请求哪个控制器,如果有必要,请分离notfoundstrategy。
在这里,您可以找到我对此问题的解决方案:http://www.cagataygurturk.com/zf2-controller-specific-not-found-page/