【问题标题】:CakePHP 404 page is not using layout set in AppControllerCakePHP 404 页面未使用 AppController 中设置的布局
【发布时间】:2011-06-25 19:22:22
【问题描述】:

我的网站有 2 个版本(取决于用于访问它的域)。 每个版本都是一个完全不同的品牌。

在我的 AppController 我有这样的东西:

// use default layout for posh site
// use cheap layout for cheap site
function beforeFilter() 
{
    parent::beforeFilter(); 

    if(isCheap())
    {
        $this->layout = 'cheap';
    }      
} 

所以现在,当有人通过 posh.com 访问我的网站时,他们会得到豪华布局,如果有人通过cheap.com 访问我的网站,他们会得到便宜的布局。

但是,如果有人在廉价网站上点击 404 页面,它不会加载廉价布局,而是加载默认布局。因此,从他们的角度来看,他们会突然出现在不同的网站上。

我该如何解决这个问题?

【问题讨论】:

    标签: cakephp layout http-status-code-404 cakephp-1.3


    【解决方案1】:

    这似乎可行,但我不得不复制逻辑,这是我不喜欢的。

    我创建了文件app/error.php,其中包含:

    class AppError extends ErrorHandler 
    { 
        function error404($params) 
        { 
            if(isCheap())
            {
                $this->controller->layout = "cheap";
            } 
            parent::error404($params); 
        } 
    } 
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多