Uno de los primeros problemas que me encontré en CakePHP fue que no sabia como hacer que las URL’s fueran de mi gusto, con la configuración que trae por defecto es muy sencillo crear módulos para nuestra aplicación quedando cosas como:
http://dominio.com/usuarios/ceritium
El problema es que yo quería hacer una aplicación en la que el usuario registrado tuviera una URL mas corta y sencilla, algo como:
http://dominio.com/ceritium
Para conseguir esto tendremos que modificar el archivor “routes.php” ubicado en la carpeta “config”, lo malo es que perderémos un poco de la mágia de Cake, pero no demasiada, ahora tendremos que especificar las rutas de los nuevos modulos a mano.
Tu routes seguramente será algo así:
// cake/app/config/routes.php
// Ruta por defecto
$Route->connect('/', array('controller' => 'pages', 'action' => 'display', 'home'));
// Ruta por defecto a tus páginas
$Route->connect('/pages/*', array('controller' => 'pages', 'action' => 'display'));
// Esta es la nueva linea que hace lo que queremos
$Route->connect('/*', array('controller' => 'users', 'action' => 'view'));
El problema de esto es que ahora pongas lo que pongas en la URL te llevará al controlador “users”, acción “view”, si queremos añadir mas módulos a nuestra aplicación solo tendremos que especificarlos así:
// Lleva al controlador "amigos"
$Route->connect('/amigos/:action/*', array('controller' => 'amigos'));
// Lleva al controlador "panel"
$Route->connect('/panel/:action/*', array('controller' => 'panel'));
No se si esta es la mejor manera pero a mí me funciona, además he visto que en Bakery recomiendan lo mismo.
EDITO: Que sí, si aún no sabes como sacar el id de tus usuarios con estas URL’s permanece atento o deja un post recordándomelo ![]()


2 comentarios ↓
[...] En mi blog personal explico como he solucionado el problema de las URL’s personalizadas. [...]
Mmm, esto me suena mucho. Qué fue antes el huevo o la gallina? Mañana me contestas :p
Leave a Comment