1

Web アプリケーションを簡素化する一連のurlManagerルールがあります。たとえば、Yii に付属のバニラ アプリケーション インストーラーは「ページ」モデルを作成し、ページを/site/page/view/aboutから/aboutにリダイレクトします。

これはうまく機能しますが、Yii が私のルールを読み取って、作成するのに最適な URL を判断できるかどうかはわかりません。現在、次のコードを使用する と、 createUrlは標準の URL ( /site/page/view/about ) を返します。createUrl('/site/page', array('view'=>'about'))

または、 を使用createUrl('/about')すると優先 URL に正しくリンクされますが、これは最初の例ほど良い方法ではないようです。また、これをCMenu関数で使用しても、このリンクは現在アクティブなリンクとして関連付けられません。

この要件に従うべきより良い慣行はありますか? createUrlの別の使用法は過度に「ハードコード化」されているようであり、前述のように、システムで論理的に機能しません (アクティブなページの決定など)。

4

2 に答える 2

1

ルール'<page:\w+>' => 'site/page/view/<page>'が正しくありません。これを(デフォルトのgii生成コードを使用していると仮定して)最初のルールとして使用します

'<view:\w+>'=>'site/page'
于 2012-07-16T16:49:56.863 に答える
1

この方法を使用して URL を作成します: /site/page/view/about

Yii::app()->createUrl('site/page', array('view'=>'about'));

ここでより良い方法で言及されています:Yii Url Mmanagement

于 2012-07-16T07:58:32.080 に答える