CakePHP 2.0 - How to make custom error pages? CakePHP 2.0 - How to make custom error pages? php php

CakePHP 2.0 - How to make custom error pages?


Try this:

/app/Config/core.php

Exception render need to set as an AppExceptionRender. Example:

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

/app/Controller/ErrorsController.php

class ErrorsController extends AppController {    public $name = 'Errors';    public function beforeFilter() {        parent::beforeFilter();        $this->Auth->allow('error404');    }    public function error404() {        //$this->layout = 'default';    }}

/app/Lib/Error/AppExceptionRenderer.php

App::uses('ExceptionRenderer', 'Error');class AppExceptionRenderer extends ExceptionRenderer {    public function notFound($error) {        $this->controller->redirect(array('controller' => 'errors', 'action' => 'error404'));    }}

/app/View/Errors/error404.ctp

<div class="inner404">    <h2>404 Error - Page Not Found</h2></div>

Insert it where you need: throw new NotFoundException();


To customize the content of a 404-error page and don't need custom logic, simply edit the contents of app/View/Errors/error400.ctp.

This seems not to be documented properly anywhere.


If you're only looking to use another layout instead of the default, just add $this->layout = 'your_error_layout'; inside your error400.ctp (or any other error page you create under View/Errors).