6

このhttp://example.com/post/post_titleのように表示されるhttp://example.com/post/view/id/1 urlのルールが必要です。ID番号の代わりに、投稿名またはタイトルを表示したい。

私の設定は次のようになります:

 'urlManager'=>array(
        'urlFormat'=>'path',
        'rules'=>array(             
            //'<controller:\w+>/<id:\d+>'=>'<controller>/view',
            //'<controller:\w+>/<action:\w+>/<id:\d+>'=>'<controller>/<action>',
            //'<controller:\w+>/<action:\w+>'=>'<controller>/<action>',
        ),
                    'showScriptName'=>false,
    ),
4

3 に答える 3

3

シンプルなルールです

'post/<post_title:\w+>' => 'post/view'

このような URL が必要な場合http://example.com/post/some-title-with-hyphen

'post/<post_title:[-\w]+>' => 'post/view'

そして、 $post_title 引数を持つコントローラーアクションが必要です

public function actionView($post_title) {
    ...
于 2014-12-27T01:15:04.370 に答える
3

このようなルールが必要です

'post/<post_title:\w+>'=>'postController/view/title/<post_title>',

これは、post/post_title で始まるリクエストを、$_GET['title'] が post_title に設定されているポスト コントローラの actionView に転送するようにアプリに指示するだけです...

それが役立つことを願っています。

于 2012-05-13T20:50:10.940 に答える
1

デフォルトでは、Yii は投稿 ID のみを取得します。投稿タイトルを表示したい場合は、カスタム Url クラス ルールで自分で DB にアクセスする必要があります。using-custom-url-rule-classesと呼ばれる yii チュートリアルの例があります。

于 2011-12-03T10:09:45.747 に答える