Foros del Web » Programando para Internet » PHP » Symfony »

Symfony Action does not exist

Estas en el tema de Symfony Action does not exist en el foro de Symfony en Foros del Web. Hola buenas , soy nuevo, con symfony y viendo un poco los manuales y libro , me encuentro con el primer error nada mas crear ...
  #1 (permalink)  
Antiguo 27/03/2011, 10:35
 
Fecha de Ingreso: agosto-2009
Mensajes: 138
Antigüedad: 15 años, 3 meses
Puntos: 0
Symfony Action does not exist

Hola buenas , soy nuevo, con symfony y viendo un poco los manuales y libro , me encuentro con el primer error nada mas crear el primer module.

este es el comando que lleve a cabo:

php symfony generate:module frontend default
php symfony generate:module frontend contenido

Anterior mente cree en la base de datos dos tablas, usuarios y perfiles, y despues hice

un
php symfony doctrine:build-schema

parece que todo esta correcto.

el roting.yml tengo esto:


homepage:
url: /
param: { module: default, action: index }

# generic rules
# please, remove them by adding more specific rules
default_index:
url: /:module
param: { action: index }

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


No entiendo porque no ha creado el contenido ,

Cuando hago un

http://www.test.com/frontend_dev.php/contenido/index
http://www.test.com/frontend_dev.php/default/index

Sale el mismo error:

Notice: ob_end_clean() [ref.outcontrol]: failed to delete buffer zlib output compression in C:\xampp\htdocs\test\lib\vendor\symfony\lib\except ion\sfException.class.php on line 97


y despues

Action "default/module" does not exist.

Tanto para default como para contenido dice lo mismo , que no encuentra el default /module.

En apps/frontend/modules/default/actions/actions.class.php

tengo:
Código PHP:
 class defaultActions extends sfActions
{
 
/**
  * Executes index action
  *
  * @param sfRequest $request A request object
  */
  
public function executeIndex(sfWebRequest $request)
  {
    
$this->forward('default''module');
  }

Alguien puede decirme que esta mal...
hay que editar el frontend/config/frontendConfiguration.class.php

Un saludo
  #2 (permalink)  
Antiguo 28/03/2011, 03:54
Avatar de historiasdemaria  
Fecha de Ingreso: septiembre-2010
Ubicación: www
Mensajes: 433
Antigüedad: 14 años, 1 mes
Puntos: 54
Respuesta: Symfony Action does not exist

Bueno, intenta esto, en el fichero:


En apps/frontend/modules/default/actions/actions.class.php


comenta la linea $this->forward('default', 'module');

pues la sitaxis para forward es:

Código PHP:
Ver original
  1. // $this->forward(<nombre_modulo>,<nombre_accion>);

y creo que el modulo default existe pero la accion 'module' no existe
  #3 (permalink)  
Antiguo 17/05/2011, 05:38
Avatar de edwines  
Fecha de Ingreso: mayo-2011
Mensajes: 21
Antigüedad: 13 años, 6 meses
Puntos: 3
Respuesta: Symfony Action does not exist

Hola!

Lo que sucede es que symfony trae un modulo llamado default en el cual se encuentran varias acciones que se ejecutan por defecto (como por ejemplo mostrar una página cuando aún no has creado nada, mostrar el error 500, mostrar el error 404, etc)

Ahora si creas un modulo con ese mismo nombre, el sistema tomara como vigente al que tu creaste; lo cual significa que cuando alguna de estas páginas que muestran contenido por defecto es llamada, buscará la acción dentro del módulo que creaste.

Por eso tienes dos opciones:
  • Crear todas las páginas que debería tener este módulo.
  • Darle un nombre diferente a tu módulo 'defaultt'

Créeme que la segunda opción es 1000 veces preferible.

Por otro lado, también puedes eliminar el llamado al $this->forward('default', 'module'); pero esto solo solucionaría tu problema en el corto plazo, pues solo estarás eliminando una de las miles de llamadas qué se hacen a una de las acciones del módulo default.

Un saludo amigo, y bienvenido al mejor framework del mundo.

Etiquetas: exist, frameworks-y-php-orientado-a-objetos, acciones
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 08:55.