Estoy usando CakePHP 1.3. Tengo un modelo de Producto. en la tabla DB, entre otros, hay campos id
y slug
.CakePHP - ¿Cómo hacer el enrutamiento inverso con slug?
Si tengo un producto que es id:37
y slug:My-Product-Title
Quiero la dirección URL para que el producto sea:
productos/37/Mi-Producto-Título
En lugar de la norma:
productos/view/37
creé una ruta que tiene este aspecto:
Router::connect(
'/products/:id/:slug',
array('controller' => 'products', 'action' => 'view'),
array('pass' => array('id'), 'id' => '[0-9]+')
);
Ahora puedo ir a http://server/products/37/My-Product-Title
y me lleva al lugar correcto.
¿Pero cómo obtengo el enrutamiento inverso para construir automáticamente la URL correcta en $HtmlHelper->link
?
Cuando uso:
echo $html->link(
'Product 37',
array('controller'=>'products', 'action' => 'view', 37)
);
Todavía emite la norma products/view/37
url.
Sé que esto no es directamente relevante, pero sugiero echar un vistazo a la sección sobre las babosas en el libro cakephp del pseudocodificador (http://www.pseudocoder.com/archives/free-cakephp-e- book-super-awesome-advanced-cakephp-tips) si no lo ha visto. – Tomba