CakePHP 例外処理

主に致命的なエラーのときなどに、正常処理とは異なるページで
表示したい場合

//コントローラなどで例外ページ呼び出し処理を行う。
$this->cakeError(“error”, array(‘msg’=>’エラーメッセージ’));
——————————————————————-
■エラーハンドハンドラ作成
/app/app_error.phpを作成する
class AppError extends ErrorHandler {

 function error($params) {
  //呼び出されたのが配列のキー[msg]に入ってくる
  $this->controller->set(‘msg’, $params[‘msg’]);
  //error.ctpを使用する
  $this->_outputMessage(‘error’);
 }

}

——————————————————————-
■エラーのview作成
/app/views/errors/error.ctpを作成する
<?php
/**
 * エラー発生時のとび先
 */
?>
<p>
 <strong><?php echo $msg; ?></strong>
</p>

——————————————————————-
JQueryのloadを使用していると(まあ当然だが)
うまくいかなかったので再リクエストで対応した。
エラー発生時に詰める
$this->ErrorHandle->setError(“登録・更新処理で問題が発生しました。”);

以下をリクエスト
function error() {
 //例外ページへ
 $this->cakeError(“error”, array(‘msg’=>$this->ErrorHandle->getError()));
}

コメントを残す

メールアドレスが公開されることはありません。