1

我们正在创建一个应用程序,我们可以在其中创建数据库内的页面。我们所有的域都将指向这个应用程序,所以我们也将我们的域存储在数据库中。同样基于该域,我们正在创建新布局并确定哪些页面属于该域。话虽如此,我们的问题是:

我们在 urlMangaer: 里面放了一条规则,它的
'http://dev.<domain:\w+>.com'=>'site/view'
输出:http://dev.example.com/example/index
代表:http://dev.$domain.com/$domain/$page

我们的目标是让 url 可以读取http://dev.$domain.com/$page并且仍然具有我们需要的功能。

这是我们的行动呼吁:
public function actionView($domain = null,$page = null, $parm = null){}

我们想到的一个可能的解决方案是扩展 urlManager,但我们不知道从哪里开始这样做。

4

2 回答 2

1

如何在您的站点控制器中定义新操作,或者找到一种使用 actionIndex 的方法,以获取域和页面作为输入并从 DB 呈现相应的域和页面。

于 2013-02-01T18:21:19.967 回答
0

我想出了解决方案,它一直在我的控制器中。

我创建了一个名为 getDomain 的新函数:

public function getDomain(){
    $domain = Domain::model()->find('domain_name=:domain_name', array(':domain_name'=>Yii::app()->request->baseUrl));
    return $domain->domain_name;
}

然后在我的 actionView 函数中

public function actionView($domain = null,$page = null, $parm = null){
    if ($domain === null){
        $domain = $this->getDomain();
    } ...

现在它可以在 $domain 必须位于 URL 内的情况下工作

于 2013-02-12T18:57:31.400 回答