Membuat Custom Error View di CakePHP 2.x

ProgrammingJuly 7, 2012
Membuat Custom Error View di CakePHP 2.x

Fitur phpcakeError() di cakePHP 1.x telah di hilangkan dan untuk versi CakePHP 2.x. Sebagai gantinya kita dapat menggunakan Class Exceptions di CakePHP 2.x. Contoh Exception dapat dilihat di controller, jika menggunakan Cake Bake di controller yang telah di generate, misal di fungsi edit akan ada potongan code seperti "php throw new NotFoundException()", inilah contoh dari penggunaan Exception di CakePHP.

Tapi view untuk Exception bawaan cakephp menggunakan layout default cakephp, bagaimana bila kita ingin mengubah view dari exception tersebut, berikut cara untuk custom error CakePHP 2.x.

Pertama kita tambahkan baris berikut di core.php



Configure::write('Exception', array(
	'handler' => 'ErrorHandler::handleException',
	'renderer' => 'AppExceptionRenderer',
	'log' => true
));


Script diatas adalah untuk konfigurasi Excetion, untuk penjelasan konfigurasi tersebut bisa dibaca di book cakephp. Selanjutnya kita buat sebuah controller baru misal ErrorsController.php.

Auth->allow('error404');
	}

	public function error404() 
	{
		//$this->layout = 'default';
	}
}
?>


Selanjutnya buat file AppExceptionRenderer.php di dalam lib, (/app/Lib/Error/AppExceptionRenderer.php)

controller->render('/Errors/error404', 'error');
		$this->controller->response->send();
	}

	public function missingAction($error) {
		$this->missingController($error);
	}

	public function notFound($error) {
		$this->missingController($error);
	}
}
?>


Kemudian buat file layout baru dengan nama "error" , pada script diatas menggunakan layout error

$this->controller->render('/Errors/error404', 'error');


Jika ada exception baru tinggal ditambahakan didalam AppExceptionRenderer.php, dan bila ingin meng-custom masing-masing view tinggal gunakan script seperti missingController dengen render & layout yang berbeda.

sumber:

  1. http://stackoverflow.com/questions/9620363/cakephp-2-0-how-to-make-custom-error-pages
  2. http://stackoverflow.com/questions/10863997/custom-views-for-errors-in-cakephp-2-1