ZendFrameworkで強制的に404エラーにしてErrorController.phpに強制移動させる方法
ZendFrameworkは、コントローラーが無かったりアクションが無かったりした場合には、
自動でErrorController.phpを動かしてくれるが、
プログラム中で意図的に404などを出したい時がある。
例えばデータベースを検索してデータがヒットしなかったら、ページ無しとして404としたい場合。など。
そのような時は
が参考になったので紹介。
自分が発生させたい場所で
throw new Exception('Not found’,404);
みたいにして、後はErrorController.php内で
$errors = $this->_getParam('error_handler’);
$exception = $errors->exception;
$code = $errors->exception->getCode();
switch( $errors->type)
{
みたいなところで、defaultのところで
//404コードがきたらアウトにする。
if( strcmp($code,’404′)==0 )
{
$this->getResponse()->setRawHeader('HTTP/1.1 404 Not Found’);
break;
}
にすればいいらしい。
参照サイトは $code == 404 にしてましたが、個人的に何となくstrcmpで比較。
なんでdefaultに書くのか?は参照先に書いてあるので、ぜひクリックを。
ディスカッション
コメント一覧
まだ、コメントがありません