1

DB内にページを作成できるアプリケーションを作成しています。すべてのドメインがこのアプリケーションを指すようになるため、ドメインも DB に保存します。また、そのドメインに基づいて、新しいレイアウトを作成し、そのドメインに属するページを決定しています。そうは言っても、ここに私たちの問題があります:

次を表す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

siteControllerで新しいアクションを定義するか、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 に答える