Pregunta

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.

Mi configuración se ve así:

 '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,
    ),
¿Fue útil?

Solución

necesitas tener una regla que se vea así

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

Esto solo le dice a la aplicación que reenvíe las solicitudes que comienzan con un post/post_title a la vista de acción del controlador de publicación donde $ _get ['title'] está configurado en post_title ...

Espero que ayude.

Otros consejos

Es una regla simple

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

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

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

Y necesita una acción del controlador con $ post_title argumento

public function actionView($post_title) {
    ...

En valor predeterminado, yii solo retraive la identificación de la publicación, si desea mostrar el título de la publicación, debe acceder al DB usted mismo en una clase de URL personalizada. Hay un ejemplo en el tutorial YII llamado Usar clases de regla de custom-url

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top