0

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();
}

それぞれ、レイアウト「エラー」とレイアウト「アイテムエラー」が必要です。関数でレイアウトを設定しようとしましたが、うまくいきません。

どんな助けでも感謝します、

4

1 に答える 1

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);
}
于 2012-10-23T15:15:37.623 に答える