cakeError(): 'error'以外のメソッド名は無視される。

'error'以外のメソッド名は、debug < 1 の場合無視される。

よくあるパターン

  • /app/error.php
class AppError extends ErrorHandler
{
    function foo( $params ){
  • /app/controller/some_controller.php
$this->cakeError( 'foo', $params );  //debug < 1 の場合、404か500のエラーが表示される。


/cake/libs/error.phpをいじるのは面倒なので、素直に'error'にしとく。

  • /app/error.php
class AppError extends ErrorHandler
{
    function error( $params ){

ソース

  • /cake/libs/error.php
/**
 * Error Handler. 
 *
 * Captures and handles all cakeError() calls.
 * Displays helpful framework errors when debug > 1.
 * When debug < 1 cakeError() will render 404 or 500 errors.
 *
// 略
		if ($method !== 'error') {
			if (Configure::read() == 0){
				$method = 'error404';
				if(isset($code) && $code == 500) {
					$method = 'error500';
				}
			}
		}