• Symfony – Soluciones paso a paso. Error: 404 Action “module/action” does not exist

    Data:2011.11.16 | CategoríaSoluciones paso a paso, Symfony | Etiquetas: ,

     
    El error 404 Action “module/action” does not exist suele ser un error de solución sencilla, y normalmente es cuestión de revisar las mayúsculas y limpiar la caché de symfony, pero te puedes volver loco si no sigues los pasos adecuados.

    Supongamos que el modulo es “reportes” y la acción es “verArticulos”.
    Entonces la ruta por defecto sería:
    “http://www.sexibilidad.com/reportes/verArticulos”.
    En este caso, a mi no me ha interesado personalizar esta ruta.

    LOS PASOS A SEGUIR:

    1. COMPRUEBA EL FICHERO DE RUTAS
    2. Si no has personalizado la ruta, comprueba la entrada:

      /apps/frontend/routing.yml

      default:
        url: /:module/:action/*

      Si la has personalizado, debes tener una entrada del tipo:

      /apps/frontend/routing.yml

      milistado:
        url: /mirutaenelnavegador
        param: { module: reportes, action: verArticulos}

      OJITO CON LAS MAYUSCULAS

       

    3. COMPRUEBA QUE EXISTE EL MÓDULO (directorio)
    4. /apps/frontend/modules/reportes

    5. COMPRUEBA, DENTRO DEL MÓDULO, LA ACCIÓN:

    6. /apps/frontend/modules/reportes/actions/actions.class.php

      public function executeReportesVerArticulos (sfWebRequest $request) {
      /* tu codigo*/
      }

      El nombre de una acción está compuesto, en primer lugar de la palabra “execute”. A continuación, con la primera letra en mayúsculas el nombre del modulo “Reportes”. Y, por último con la primera letra en mayúsculas, el nombre de la acción “VerArticulos”. Esta notación con mayúsculas separando las pablabras se llama “CamelCase”.

      OJO a las mayusculas, siempre.

    7. COMPRUEBA EL TEMPLATE (fichero)
    8. En rigor, el error relativo al template es error 500 – Internal Server Error: The template “verArticulosSuccess.php” does not exist or is unreadable in “”.

      Sin embargo, ya que estamos tan cerca, veamos también el template.
      Si no tienes el template desactivado en ningun view.yml o por código, comprueba que existe el fichero:

      /apps/frontend/modules/reportes/templates/verArticulosSuccess.php

      Comprueba cuidadosamente las mayúsculas.

       

    9. LIMPIA LA CACHE DE SYMPONY:
    10. Lo más normal es que el fichero routing.yml esté almacenado en la caché, así que, si lo has modificado, debes limpiarla.

      Escribe en la linea de comandos:

      php symfony cc

      Y eso es todo. Hay errores más complejos relacionados con este error, pero no son objeto de este how-to. Si tienes algun caso extraño, siéntete libre de comentarlo.