2011-02-11 75 views
0

我有2個版本的我的網站(取決於使用哪個域來訪問它)。 每個版本都是完全不同的品牌。CakePHP 404頁面未使用AppController中的佈局設置

在我的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頁面,它不會加載便宜的佈局,它將加載默認佈局。所以從他們的角度來看,他們突然間會出現在不同的地點。

我該如何解決這個問題?

回答

1

這似乎是工作,我不得不重複邏輯,雖然我不喜歡。

我創建了一個包含文件app/error.php

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