0

抱歉,标题描述性不强,找不到方法。

我正在开发一个网站,用户可以在其中使用产品建立自己的商店。我想做的是让所有商店名称都被称为:

site.com/shop1

site.com/my_shop_name

site.com/john_shop

ETC

当然,我不想干扰 /shops/add、/shops/edit、/products/view/product_name 等其他路线。

由于商店是动态创建的,我无法将所有路线都写成 routes.php。

有解决办法吗?

谢谢

4

1 回答 1

0

我正在从事类似类型的项目。我所做的是我们有固定的模板。所以在模板的数据库表中,我给了这些模板一个特殊的名称。这些模板将像这样显示

app/view/Home/aglet.ctp app/view/Home/gondor.ctp

app/view/About/aglet.ctp app/view/About/gondor.ctp

app/view/Layout/aglet/default.ctp app/view/Layout/gondor/default.ctp

app/webroot/aglet/css/123.css app/webroot/aglet/js/123.js

当有人访问站点时,您可以使用 HTTP_HOST 获取该域名。按名称您可以获取 domain_id 并通过域 hasOne 模板您可以获取模板 forlder。所以要渲染视图,您可以通过

$this->layout = $result['Template][foldername].DS.'default'

$this->render('/Home'.DS.$result['Template][foldername]);

这样,您可以定义路线。喜欢

Router::conncet('/Homepage',array('controller'=>'Home','action'=>'home'));

因此,如果您有 6 个页面,则必须创建 6 个路由。就这样

于 2013-10-16T12:24:17.020 回答