cakephp 1.3中不同错误的不同布局

时间:2012-10-23 14:43:56

标签: cakephp cakephp-1.3

是否可以在cakephp1.3中为不同的错误设置不同的布局?

这是我的 AppError

function _outputMessage($template) {
    $this->controller->beforeFilter();
    $this->controller->render($template);
    $this->controller->afterFilter();
    echo $this->controller->output;
}

function error404($params) {
    extract($params, EXTR_OVERWRITE);
    header("HTTP/1.0 404 Not Found");
    $this->error(array('code' => '404',
                    'name' => 'Not found',
                    'message' => sprintf("page not found %s", $url, $message),
                    'base' => $base));

    exit();
}

function item404($params) {
    extract($params, EXTR_OVERWRITE);
    header("HTTP/1.0 404 Not Found");

    $this->error(array('code' => '404',
                    'name' => 'Not found',
                    'message' => sprintf("Item not found %s", $url, $message),
                    'base' => $base));

    exit();
}

我想分别有布局“错误”和布局“itemerror”。 我已尝试在函数中设置布局,但它不起作用。

任何帮助表示赞赏,

1 个答案:

答案 0 :(得分:0)

当然,只需更改控制器的布局即可。

$this->controller->layout = 'error_layout';

这假设您继续使用默认的_outputMessage()方法。

function _outputMessage($template) {
    // can be set in the error method
    $this->controller->layout = 'error_layout';
    parent::_outputMessage($template);
}