Попробуйте это:
/ app / Config / core.php
Исключение рендеринга необходимо установить как AppExceptionRender
.Пример:
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>
Вставьте его туда, где вам нужно: throw new NotFoundException();