Foros del Web » Programando para Internet » PHP » Frameworks y PHP orientado a objetos »

[SOLUCIONADO] Cakephp Error: IndexController could not be found

Estas en el tema de Error: IndexController could not be found en el foro de Frameworks y PHP orientado a objetos en Foros del Web. Una vez se ha hecho un modelo y un controlador, con un determinado nombre, en todos los manuales sobre CakePHP que he podido ver se ...
  #1 (permalink)  
Antiguo 12/06/2013, 11:06
miguelnr
Invitado
 
Mensajes: n/a
Puntos:
Error: IndexController could not be found

Una vez se ha hecho un modelo y un controlador, con un determinado nombre, en todos los manuales sobre CakePHP que he podido ver se indica que una manera de denominar la vista es "index.ctp".

Por ejemplo modelo: "Usuario.php", controlador: "UsuariosController.php" y vista: "index.ctp"

Sin embargo una vez pasado a la url del navegador la ruta "host/sitio/index" da el siguiente error:

Error: IndexController could not be found.

Error: Create the class IndexController below in file: app\Controller\IndexController.php


No he encontrado explicado en algún sitio que haya que crear un "IndexController", lo que se suele decir es que index hará referencia a la función "index" del controlador, sin embargo parece que el cakephp reclama un "controlador" específico para "Index"

¿A qué puede deberse?
  #2 (permalink)  
Antiguo 12/06/2013, 11:37
Avatar de abimex
Colaborador
 
Fecha de Ingreso: marzo-2007
Ubicación: ~
Mensajes: 751
Antigüedad: 17 años, 1 mes
Puntos: 137
Respuesta: Error: IndexController could not be found

por defecto cake toma la ruta controlador/accion, en este casi si vas a /index, va a buscar un controlador IndexController, si vas a /usuario va a buscar un controlador UsuarioController. Puedes agregar tus propias rutas y tambien puedes modificar este comportamiento desde la configuracion de rutas de cake
__________________
>> abimaelmartell.com
  #3 (permalink)  
Antiguo 13/06/2013, 05:31
 
Fecha de Ingreso: agosto-2003
Mensajes: 174
Antigüedad: 20 años, 8 meses
Puntos: 3
Respuesta: Error: IndexController could not be found

Si te dice indexcontroller not found es porque está buscando un controlador para un modelo llamado index. Index no es un modelo ni un controlador. Es una acción.

Te aconsejo que revises las convenciones cakephp para nombre de tabla, campos, nombre de modelo y controlador porque lo estas haciendo mal. Hay que cuidar el nombre del archivo y la variable class por la que será conocido.
  #4 (permalink)  
Antiguo 13/06/2013, 10:53
Avatar de abimex
Colaborador
 
Fecha de Ingreso: marzo-2007
Ubicación: ~
Mensajes: 751
Antigüedad: 17 años, 1 mes
Puntos: 137
Respuesta: Error: IndexController could not be found

controlador para modelo? en que parte de la documentación dice eso?
claro que busca por un controlador IndexController es el nombre del controlador
__________________
>> abimaelmartell.com
  #5 (permalink)  
Antiguo 13/06/2013, 11:07
miguelnr
Invitado
 
Mensajes: n/a
Puntos:
Pregunta Respuesta: Error: IndexController could not be found

A mi me parece muy raro porque incluso en sitios web que parecen bastante "avanzados"...

véase: http://book.cakephp.org/2.0/es/tutorials-and-examples/blog/part-two.html


.. si sigues punto por punto las explicaciones, te dicen que el nombre de modelo y controlador sí tienen similitudes (con el nombre de la tabla de la base de datos), pero de golpe te dicen que la vista puede llamarse "index.ctp", y acto seguido te dicen que introduciendo tu URL en el navegador (en ese ejemplo de arriba: http://localhost/blog/posts/index) te cargará todo con normalidad

Por lo que veo no es así, y por index busca un modelo, y no una vista, ni interpreta que sea la acción de un controlador...

Lo que no comprendo es como en un sitio web que parece ser de una comunidad de desarrollo pueden explicar algo que si, lo sigues literalmente, no funciona

Así que, ¿cual sería la solución correcta?, ¿si tienes un "index" como página principal, como reconduces la petición hasta un controlador que haga algo específico?
  #6 (permalink)  
Antiguo 13/06/2013, 11:16
miguelnr
Invitado
 
Mensajes: n/a
Puntos:
Sonrisa Respuesta: Error: IndexController could not be found

... creo que ya entendí la explicación de Abimex

En realidad el ejemplo del tutorial que enlacé antes es correcto. No comprendía correctamente la relación entre el controlador y su index

Gracias por la ayuda
  #7 (permalink)  
Antiguo 13/06/2013, 11:42
Avatar de abimex
Colaborador
 
Fecha de Ingreso: marzo-2007
Ubicación: ~
Mensajes: 751
Antigüedad: 17 años, 1 mes
Puntos: 137
Respuesta: Error: IndexController could not be found

puedes configurar todo en app/Config/routes.php, ahi puedes hacer que
usuarios/agregar sea /registro
y mas cosas ;)
__________________
>> abimaelmartell.com
  #8 (permalink)  
Antiguo 13/06/2013, 11:57
 
Fecha de Ingreso: agosto-2003
Mensajes: 174
Antigüedad: 20 años, 8 meses
Puntos: 3
Respuesta: Error: IndexController could not be found

Cita:
controlador para modelo? en que parte de la documentación dice eso?
Eso no lo dice la documentación y yo no quise decir eso. De hecho un ejemplo de controlador es el de pages que no tiene ningún modelo subyacente. Lo que yo quise decir es que si tienes una tabla que se llama 'persona' su modelo debería ser 'Personas' y su controlador 'PersonaController' el cual debería contener acciones. Yo me refería a que al buscar un 'indexcontroller' es que se había hecho un lio porque index es una acción que podría ir dentro del controlador 'PersonaController' y que sirve para listar lo que hay en la tabla 'persona. Por eso le dije que revisara las convenciones cakephp.'

Etiquetas: cakephp
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 20:54.