3

私はYiiフレームワークに基づいたWebアプリケーションを開発してきました。

sefurlを作成しようとすると問題が発生しました。

私が持っているもの:

  1. 構成が設定されます。

    'urlManager' => array('urlFormat' =>'path'、'showScriptName' => false、'rules' => array(//ルールはここにあります))

  2. これは、テストに使用されるコードです。

echo $this->createUrl('site/test', array('help'=>'me')

$this-はコントローラーです。

configemptyの'rules'配列を使用している場合、これを取得してい/site/test/help/meます。私はこれを期待していました。

もしも

'rules'=>array(
    '<controller:\w+>/<action:\w+>' => '<controller>/<action>',
)

/site/test?help=meも期待されているものを手に入れています。

しかし、

'rules'=>array(
    '<controller:\w+>/<action:\w+>' => '<controller>/<action>',
    '<controller:\w+>/<action:\w+>/<help:\w+>' => '<controller>/<action>/<help>',
)

私はまだ取得してい/site/test?help=meます。私は見ることを期待していました/site/test/me

誰か助けてもらえますか?

前もって感謝します。

4

1 に答える 1

6

ルールの順序を変更し、を削除し<help>ます。アクションに自動的に追加されます。したがって、ルールは次のようになります。

'<controller:\w+>/<action:\w+>/<help:\w+>' => '<controller>/<action>',
'<controller:\w+>/<action:\w+>' => '<controller>/<action>',

ルールの順序が重要です。最も詳細なものを最初に置く必要があります。

よろしく

于 2012-05-21T11:22:42.080 に答える