2011-02-02 83 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