如何将自定义布局放在404错误页面而不是cakephp 2.x中的默认布局

时间:2014-06-26 12:43:15

标签: cakephp

我在错误视图中创建了一个error400.ctp。采用默认布局,但我想更改自定义布局

下面是我使用的代码,但是没有工作

public function error404() {
    $this->layout = 'customlayout'; // here i user customlayout instead of default
}

请建议我如何使用我的自定义布局

感谢Sanjib

1 个答案:

答案 0 :(得分:3)

经过大量研究后,我得到了解决方案

更改core.php中的ExceptionRenderer以使用您自己的渲染器。

应用程序/配置/ core.php中:

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

然后创建新文件MyExceptionRenderer.php

应用程序/ LIB /错误/ MyExceptionRenderer.php:

<?php
App::uses('ExceptionRenderer', 'Error');

class MyExceptionRenderer extends ExceptionRenderer {

  protected function _outputMessage($template) {
    $this->controller->layout = 'innerdefault';
    parent::_outputMessage($template);
  }

}
?>

这对我来说很好,让我们尝试分享你的想法