2011-12-03 19 views
6

Ho bisogno di una regola per l'url http://example.com/post/view/id/1 che verrà visualizzata come questa http://example.com/post/post_title. Invece del numero ID, voglio visualizzare il nome o il titolo del post.URL SEO friendly in Yii

mio config si presenta così:

'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, 
    ), 
+1

accettare una risposta per favore. –

risposta

3

è necessario disporre di una regola che assomiglia a questo

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

Questo dice solo l'applicazione per inoltrare le richieste che iniziano con un post/post_title ai controller di pubblicare di actionView dove $ _GET ['title'] è impostato per post_title ...

Spero che questo aiuti.

1

in difetto, Yii prelevare solo l'id, se si desidera visualizzare il titolo del post, è necessario accedere al DB la vostra auto in un regole di classe URL personalizzato . v'è un esempio nel tutorial Yii chiamato using-custom-url-rule-classes

2

E 'semplice regola

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

Se necessità URL come questo http://example.com/post/some-title-with-hyphen

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

ed hai bisogno di un'azione di controllo con $ post_title argomento

public function actionView($post_title) { 
    ... 
Problemi correlati