En la aplicación frontend
utilizamos la tarea propel:generate-module
para generar automáticamente un módulo sencillo que permite realizar las opciones básicas sobre una clase del modelo. En la aplicación backend
vamos a utilizar la tarea propel:generate-admin
para generar una interfaz completa de administración para una clase del modelo:
$ php symfony propel:generate-admin backend JobeetJob --module=job $ php symfony propel:generate-admin backend JobeetCategory --module=category
Los dos comandos anteriores crean respectivamente los módulos job
y category
para las clases del modelo JobeetJob
y JobeetCategory
.
La opción --module
permite redefinir el nombre que la tarea genera por defecto para cada módulo (que en el caso de la clase JobeetJob
hubiera sido jobeet_job
).
La tarea propel:generate-admin
también crea automáticamente una ruta propia para cada módulo:
# apps/backend/config/routing.yml
jobeet_job:
class: sfPropelRouteCollection
options:
model: JobeetJob
module: job
prefix_path: job
column: id
with_wildcard_routes: true
Como era de esperar, el tipo de ruta que utiliza el generador de la parte de administración es sfPropelRouteCollection
, ya que el objetivo de la interfaz de administración es la gestión completa de los objetos del modelo.
La definición de la ruta anterior también incluye algunas opciones que no habías visto hasta ahora:
prefix_path
: define el prefijo utilizado en las rutas generadas (en este ejemplo, la página de modificación de una oferta de trabajo será algo como/job/1/edit
).column
: define qué columna de la tabla se utiliza en las URL de los enlaces que hacen referencia a un objeto.with_wildcard_routes
: como la interfaz de administración incluye muchas más posibilidades que las operaciones básicas (crear, actualizar, obtener y borrar objetos), esta opción permite definir más acciones sobre objetos y colecciones de objetos sin necesidad de modificar la ruta.
Nota Como siempre, es una buena idea leer la ayuda de una tarea antes de utilizarla:
$ php symfony help propel:generate-admin
La ayuda de Symfony muestra todos los argumentos y opciones de cada tarea y también muestra algunos ejemplos de uso.