Question

Je besoin d'une règle pour http://example.com/post/view/id/1 URL qui sera affiché comme cette http://example.com/post/post_title . Au lieu du numéro d'identification je veux afficher le nom de poste ou titre.

Mon look de configuration comme ceci:

 '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,
    ),
Était-ce utile?

La solution

vous devez avoir une règle qui ressemble à ceci

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

Cela indique simplement l'application aux demandes avant qui commencent par un poste / post_title à la ActionView de poste de commande où $ _GET [ « title »] est réglé sur post_title ...

L'espoir qui aide.

Autres conseils

Il est simple règle

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

Si besoin url comme cette http://example.com/post/some-title -avec-trait d'union

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

Et vous avez besoin d'une action de contrôleur avec $ l'argument post_title

public function actionView($post_title) {
    ...

en défaut, Yii ne retreive l'id poste, si vous voulez afficher le titre poste, vous devez accéder à la base de données de votre auto dans une coutume règles de classe URL. il est un exemple dans le tutoriel yu appelé

scroll top