2011-12-03 17 views
6

Necesito una regla para http://example.com/post/view/id/1 URL que se mostrará así http://example.com/post/post_title. En lugar del número de identificación, quiero mostrar el nombre o el título de la publicación.URL amigable con SEO en Yii

Mi configuración es la siguiente:

'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

Aceptar una respuesta por favor. –

Respuesta

3

es necesario tener una regla que tiene este aspecto

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

Este dice la aplicación para reenviar las solicitudes que se inician con un poste/POST_TITLE a los del controlador de correos actionView donde $ _GET ['title'] está establecido en post_title ...

Espero que ayude.

1

en su defecto, Yu única retreive el ID del mensaje, si desea mostrar el título de la entrada, es necesario para acceder a la base de datos de su auto en un reglas de la clase URL personalizada . hay un ejemplo en el tutorial yü llamado using-custom-url-rule-classes

2

Es simple regla

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

Si necesidad URL como esta http://example.com/post/some-title-with-hyphen

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

y necesitas una acción del controlador con $ POST_TITLE argumento

public function actionView($post_title) { 
    ...