dwebdos
(Dwebdos)
July 17, 2012, 10:46pm
1
Hola de nuevo
Tengo una gran duda, estoy leyendo acerca del url manager y las reglas pero no logro entender que significa lo de d+ y w+ en ellas
<controller:\[color="#FF0000 "]w+[/color]>/<id:\[color="#FF0000 "]d+[/color]>’=>’<controller>/view
Alguien de ustedes sabe?
Gracias y saludos
Luciano
(Luciano Baraglia)
July 21, 2012, 4:33am
2
dwebdos:
Hola de nuevo
Tengo una gran duda, estoy leyendo acerca del url manager y las reglas pero no logro entender que significa lo de d+ y w+ en ellas
<controller:\[color="#FF0000 "]w+[/color]>/<id:\[color="#FF0000 "]d+[/color]>’=>’<controller>/view
Alguien de ustedes sabe?
Gracias y saludos
Hola!
Son expresiones regulares para manejar las urls.
\w+ significa literlmente "Cualquier letra, número o guiones bajos una o más veces"
\d+ significa "Cualquier dígito una o más veces"
<controller:\w+>/<id:\d+>’=>’<controller>/view
Quiere decir que al ir a una URL por ejemplo: xyz/123 YII va a tratar de ejecutar la acción actionView del controller XyzController y le va a pasar la variable id con el valor 123 como argumento.
Sería como hacer xyz/view/id/123 .
¿Muy confuso?
ya se que este tema es antiguo, pero me ha surgido una duda, tengo un action con un parametro key, del tipo
/cruge/ui/activationurl/key/336d5ebc5436534e61d16e63ddfca327
y me gustaría transformarlo en:
activation/key/336d5ebc5436534e61d16e63ddfca327
he probado con la regla en el urlmanager:
'cruge/ui/activationurl/<key:\d+>'=>'activation',
y he cambiado muchas cosas, pero nada…
se que debe ser fácil, pero no me sale!!!
Alguna idea???
He probado con htaccess, con las siguientes lineas:
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
#Esta es la linea que debería simplificarme la url
Rewriterule ^cruge/ui/activationurl/key/(.*)$ activation/key/$1
Pero tampoco funciona!!! arggggg jejejejeje
Luciano
(Luciano Baraglia)
August 31, 2012, 7:03am
5
he probado con la regla en el urlmanager:
'cruge/ui/activationurl/<key:\d+>'=>'activation',
y he cambiado muchas cosas, pero nada…
Nunca usé Cruge como para probar, pero me parece que hay un par de temas:
1 - <key:\d+> , le estás diciendo que sólo puede aceptar dígitos como el valor de la variable key , y vos necesitás tanto letras como números, por eso tenés que usar \w .
2 - El orden en los que definís la regla: la clave es la url "real" (que vas a ver en el navegador, con sus variables) y el valor es la acción que tiene que ejecutar realmente.
Entonces quedaría algo como:
'activation/key/<key:\w+>' => 'cruge/ui/activationUrl',
Igualmente puede ser que esté diciendo cualquier cosa porque son las 4 de la mañana y recién termino de trabajar, haha…
Saludos! y avisá si le encontrás la vuelta!
Lucas_news
(Milucas20)
September 3, 2012, 10:35am
6
Hola! y gracias por contestar!!
Sigue sin funcionar!! y ni idea de porque!! He pasado el action a mi controlador site, y me funciona la url en la forma
site/activation/key/rw4f9v6wj59vyh59
Pero con la norma :
'activation/key/<key:\w+>' => 'site/activation',
no reconoce la url:
'activation/key/rw4f9v6wj59vyh59
he probado a ponerla al principio de la normas url, pero nada!!
Sigo probando!! jejejejee un saludo!
Luciano:
Nunca usé Cruge como para probar, pero me parece que hay un par de temas:
1 - <key:\d+> , le estás diciendo que sólo puede aceptar dígitos como el valor de la variable key , y vos necesitás tanto letras como números, por eso tenés que usar \w .
2 - El orden en los que definís la regla: la clave es la url "real" (que vas a ver en el navegador, con sus variables) y el valor es la acción que tiene que ejecutar realmente.
Entonces quedaría algo como:
'activation/key/<key:\w+>' => 'cruge/ui/activationUrl',
Igualmente puede ser que esté diciendo cualquier cosa porque son las 4 de la mañana y recién termino de trabajar, haha…
Saludos! y avisá si le encontrás la vuelta!
Luciano
(Luciano Baraglia)
September 3, 2012, 1:28pm
7
Hola! y gracias por contestar!!
Sigue sin funcionar!! y ni idea de porque!! He pasado el action a mi controlador site, y me funciona la url en la forma
site/activation/key/rw4f9v6wj59vyh59
Pero con la norma :
'activation/key/<key:\w+>' => 'site/activation',
no reconoce la url:
'activation/key/rw4f9v6wj59vyh59
he probado a ponerla al principio de la normas url, pero nada!!
Sigo probando!! jejejejee un saludo!
Qué raro, yo lo probé localmente en un módulo cualquiera y anduvo la regla en cuestión.
¿Entonces no te funciona en el módulo Cruge pero sí si lo pasás al controlador Site?
Lucas_news
(Milucas20)
September 12, 2012, 11:13am
8
Lo he "conseguido" usando la norma
'activation-key/<key:\w+>'=>'site/activation',
pero no activation/key… en fin así se va a quedar!! jejejeje Gracias y saludos!
Luciano:
Qué raro, yo lo probé localmente en un módulo cualquiera y anduvo la regla en cuestión.
¿Entonces no te funciona en el módulo Cruge pero sí si lo pasás al controlador Site?