En primer lugar, debemos crear una nueva ruta para que las páginas de las categorías tengan URL limpias. Añade la siguiente ruta al principio del todo del archivo routing.yml:
# apps/frontend/config/routing.yml category: url: /category/:slug class: sfPropelRoute param: { module: category, action: show } options: { model: JobeetCategory, type: object }
Siempre que vas a añadir una nueva característica en la aplicación, es una buena práctica pensar primero en su URL y después crear la ruta asociada. Además, esta práctica es obligatoria si has borrado las rutas por defecto de Symfony.
Las rutas pueden utilizar como parámetro cualquier columna de su objeto asociado. Las rutas también pueden emplear cualquier otro valor para el que exista un método accesor de tipo get() en la clase del objeto. Como slug no es una columna de la tabla category, tenemos que añadir un método accesor en JobeetCategory para que la ruta anterior pueda funcionar:
// lib/model/JobeetCategory.php public function getSlug() { return Jobeet::slugify($this->getName()); }
válido para Symfony 1.3