2011-02-02 55 views
0

我需要運行2個站點,一個用於高端客戶,另一個用於低端客戶。CakePHP根據域加載不同的佈局/數據?

他們幾乎做同樣的事情,但看起來不同。例如,他們都可能有產品A,但價格和描述(不重複的內容)會有所不同。

但是,大多數情況下,他們將擁有不同的產品,高端產品的高端產品和低端產品的低端產品。

如果兩個站點使用相同的基礎結構,則更容易,因此許多重疊部分不必重複。特別是在變化。但是必要時它需要允許每個站點使用不同的邏輯。

因此,如果我指出2個不同的域(讓我們稱它們爲highend.com和lowend.com)到同一個服務器。處理這個問題的最好方法是什麼?

應/我可以確定在app_controller中使用了哪個域,並指定要使用哪個佈局或設置子控制器要使用的變量?怎麼樣?

有沒有一種方法可以在數據庫中的一些字段前綴。例如,如果有products表和products.highend_nameproducts.lowend_name字段。然後在代碼中參考Product.name,但取決於使用哪個域,請使用正確的域。但是對於像style_number這樣的重疊的場景,由於它的方式相同,因此沒有前綴products.style_number。有沒有辦法設置這樣的事情?怎麼樣?

要做這樣的事情最好的方法是什麼?是否有不同的框架可以更好地處理這個問題?

回答

2

在控制器:

$host = $_SERVER['SERVER_NAME']; 
if($host=='www.posh.com') 
{ 
    $this->layout = 'posh'; 
} 
elseif($host=='www.cheap.com') 
{ 
    $this->layout = 'cheap'; 
} 
else 
{ 
    $this->layout = 'default'; 
} 
+0

我想我也可以嘗試建立一個行爲來處理加載不同的數據。 – 2011-02-03 14:39:11

相關問題