Problema Con Createurl Y Urls Limpias

Hola a todos.

Tengo un problema desde hace días y no encuentro la solución o a lo mejor no estoy mirando bien, espero que puedan ayudarme.Lo que sucede es que el sitio que estoy haciendo ya tiene las urls limpias pero cuando intento utilizar createUrl para un link la url no me sale limpia y no me sirve.Acá les dejo lo que estoy haciendo.

Este un método de un widget que estoy haciendo que me inserta notificaciones en la base de datos, todo funciona bien exepto el formato con la dirección




 public function crearNotificaciones()

     {

        if($this->tipo == 3){

        $user1=Usuario::model()->find('id_usuario=:id_usuario',array(

        'id_usuario'=>$this->de

        ));

        $user2=Usuario::model()->find('id_usuario=:id_usuario',array(

        'id_usuario'=>$this->para

        ));

        $notific=new Notificaciones;

         $notific->de=$this->de;

         $notific->para=$this->para;

         $notific->lt_usuario_id_usuario=$this->para;

         $notific->asunto=$this->asunto;

         [b]$notific->formato=Yii::app()->createUrl('/usuario/view', array('id_usuario' =>$this->de));[/b]

         $notific->tipo=$this->tipo;

         $notific->mensaje=$user2->nombre." "."Te ha visto"." ".$user1->nombre;

         $notific->estado=$this->estado;

         if($this->de !=$this->para)

             $notific->save();

        }     

     }



En el link lo esto usando así




CHtml::link($this->mensaje,$var->formato)



y la dirección que me está devolviendo es:

http://localhost/misitio/usuario/view?id_usuario=4

Gracias de antemano.

Verifica que el Apache y el componente urlManager en protected/config/main.php estén configurado para url limpios según explica la Guía.

Hola gracias por contestar

esto es lo que tengo puesto para las urls limpias

.htaccess




Options +FollowSymLinks

IndexIgnore */*

RewriteEngine on

 

# if a directory or a file exists, use it directly

RewriteCond %{REQUEST_FILENAME} !-f

RewriteCond %{REQUEST_FILENAME} !-d

 

# otherwise forward it to index.php

RewriteRule . index.php



y en el main.php




'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,



La urls limpias me han funcionado bien, el problema es cuando uso el createUrl.

gracias

Todo se ve bien… ¿Porqué no tratas desactivando las reglas de urlManager? En ocasiones me han traído problemas cuando las activo por defecto sin ninguna necesidad particular de las mismas.

Otra cosa: dependiendo del hosting que uses a lo mejor debes cambiar la última línea de .htaccess a:




RewriteRule ^.*$ /index.php [L]



Muchas gracias amigo,hice lo que me dijo y gracias a eso pude ver que era lo que pasaba, a la dirección le estaba pasando mal el id del usuario.No pude ver que estaba delante de mi jejeje. Gracias.

Yii::app()->createUrl(’/usuario/view’, array(‘id_usuario’ =>$this->de));

Me alegro que pudieras resolver el problema. Suerte!