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

Problemas formularios y collections entorno producción

Estas en el tema de Problemas formularios y collections entorno producción en el foro de Symfony en Foros del Web. Buenos días! ¿Qué tal? Me estoy encontrando con un caso curioso... Tengo una aplicación de gestión de almacén, con varios formularios para dar de alta ...
  #1 (permalink)  
Antiguo 04/05/2015, 01:58
 
Fecha de Ingreso: marzo-2005
Mensajes: 51
Antigüedad: 19 años, 1 mes
Puntos: 0
Pregunta Problemas formularios y collections entorno producción

Buenos días! ¿Qué tal?

Me estoy encontrando con un caso curioso... Tengo una aplicación de gestión de almacén, con varios formularios para dar de alta referencias y colecciones de formularios para temas compras y salidas.

En caso es que en el entorno de desarrollo (es decir, con el app_dev.php) me funciona todo perfectamente, pero a la hora de ejecutarlo en producción es decir, con el app.php) no me funciona uno de los formularios en concreto (bueno, todos aquellos formularios a los que se llama a la entidad de referencias)

Luego por otro lado, a la hora de limpiar la caché, me dice que no encuentra una entidad (que no existe). Me da un "reflectionException" sobre una tal entidad "Collection" que no está definida (me da que es del tema de la colección de formularios).

Alguna idea o algún caso similar? Un saludo y gracias!
  #2 (permalink)  
Antiguo 04/05/2015, 07:31
Avatar de hhs
hhs
Colaborador
 
Fecha de Ingreso: junio-2013
Ubicación: México
Mensajes: 2.995
Antigüedad: 10 años, 9 meses
Puntos: 379
Respuesta: Problemas formularios y collections entorno producción

Puedes publicar el error textualmente ?
__________________
Saludos
About me
Laraveles
A class should have only one reason to change.
  #3 (permalink)  
Antiguo 04/05/2015, 08:15
 
Fecha de Ingreso: marzo-2005
Mensajes: 51
Antigüedad: 19 años, 1 mes
Puntos: 0
Respuesta: Problemas formularios y collections entorno producción

Me he dado cuenta que los formularios que en producción no funcionan, en desarrollo me muestra el siguiente mensaje:

"The CSRF token is invalid. Please try to resubmit the form"

No sé si tendrá algo que ver.

Es un formulario con su colección de formularios (Compra -> Referencias compradas)
  #4 (permalink)  
Antiguo 04/05/2015, 08:32
Avatar de hhs
hhs
Colaborador
 
Fecha de Ingreso: junio-2013
Ubicación: México
Mensajes: 2.995
Antigüedad: 10 años, 9 meses
Puntos: 379
Respuesta: Problemas formularios y collections entorno producción

Symfony maneja esto de forma automática agregando un campo hidden con el token cuando agregas la directiva form_end() en el twig si no lo tienes que hacer manualmente. Revisa la documentación http://symfony.com/doc/current/book/...srf-protection
__________________
Saludos
About me
Laraveles
A class should have only one reason to change.
  #5 (permalink)  
Antiguo 04/05/2015, 08:57
 
Fecha de Ingreso: marzo-2005
Mensajes: 51
Antigüedad: 19 años, 1 mes
Puntos: 0
Respuesta: Problemas formularios y collections entorno producción

He corregido lo del token, pero el formulario sigue sin ir en producción (solo se ve en desarrollo). En producción no carga la página, se queda en blanco, y el debuger de DEV no muestra ningún error...

Estoy poniendome un poco loco ya jejeej
  #6 (permalink)  
Antiguo 04/05/2015, 09:03
Avatar de hhs
hhs
Colaborador
 
Fecha de Ingreso: junio-2013
Ubicación: México
Mensajes: 2.995
Antigüedad: 10 años, 9 meses
Puntos: 379
Respuesta: Problemas formularios y collections entorno producción

Con la poca información que proporcionas lo que te puedo decir es que revises que el usuario de apache tienes permisos de escritura en el los directorios /cache y /logs.
Borra el cache y genera la base de datos, si ya esta generada crea el schema o actualizo si es necesario.
__________________
Saludos
About me
Laraveles
A class should have only one reason to change.
  #7 (permalink)  
Antiguo 04/05/2015, 09:21
 
Fecha de Ingreso: marzo-2005
Mensajes: 51
Antigüedad: 19 años, 1 mes
Puntos: 0
Respuesta: Problemas formularios y collections entorno producción

Tengo la BD creada y generada. La aplicación corre perfectamente salvo cuando entra en un twig que contiene un form con su form collection. En DEV funciona (y no da errores) pero en PROD no muestra la página, da un error 500.

(a todo esto, cuando hago un cache clear me dice que no puede ya que no se ha encontrado lla entidad "collection" (y realmente no existe, nunca le ha definido). Pero en la entidad de la colección de formularios tengo esto:

public function __construct()
{
$this->comprasReferences = new \Doctrine\Common\Collections\ArrayCollection();
}

public function setComprasReferences(\Doctrine\Common\Collections\Collection $comprasReferences)
{
$this->comprasReferences = $comprasReferences;
foreach ($comprasReferences as $comprasReferences) {
$comprasReferences->setCompras($this);
}
}


De los logs saco lo siguiente:

127.0.0.1 - - [04/May/2015:17:20:10 +0200] "GET /app.php/compras/add HTTP/1.1" 500 -

[Mon May 04 17:20:10.711453 2015] [:error] [pid 4332:tid 1824] [client 127.0.0.1:50895] PHP Warning: require(D:/user/htdocs/inet-almacen/app/cache/prod/doctrine/orm/Proxies\\__CG__AlmacenAlmacenBundleEntityfamily.ph p): failed to open stream: No such file or directory in D:\\user\\htdocs\\inet-almacen\\vendor\\doctrine\\orm\\lib\\Doctrine\\ORM \\Proxy\\ProxyFactory.php on line 92
[Mon May 04 17:20:10.711453 2015] [:error] [pid 4332:tid 1824] [client 127.0.0.1:50895] PHP Stack trace:
[Mon May 04 17:20:10.712453 2015] [:error] [pid 4332:tid 1824] [client 127.0.0.1:50895] PHP 1. {main}() D:\\user\\htdocs\\inet-almacen\\web\\app.php:0
[Mon May 04 17:20:10.712453 2015] [:error] [pid 4332:tid 1824] [client 127.0.0.1:50895] PHP 2. Symfony\\Component\\HttpKernel\\Kernel->handle() D:\\user\\htdocs\\inet-almacen\\web\\app.php:22
[Mon May 04 17:20:10.712453 2015] [:error] [pid 4332:tid 1824] [client 127.0.0.1:50895] PHP 3. Symfony\\Component\\HttpKernel\\DependencyInjectio n\\ContainerAwareHttpKernel->handle() D:\\user\\htdocs\\inet-almacen\\app\\bootstrap.php.cache:411
[Mon May 04 17:20:10.712453 2015] [:error] [pid 4332:tid 1824] [client 127.0.0.1:50895] PHP 4. Symfony\\Component\\HttpKernel\\HttpKernel->handle() D:\\user\\htdocs\\inet-almacen\\app\\bootstrap.php.cache:1101
[Mon May 04 17:20:10.712453 2015] [:error] [pid 4332:tid 1824] [client 127.0.0.1:50895] PHP 5. Symfony\\Component\\HttpKernel\\HttpKernel->handleRaw() D:\\user\\htdocs\\inet-almacen\\app\\bootstrap.php.cache:975
[Mon May 04 17:20:10.712453 2015] [:error] [pid 4332:tid 1824] [client 127.0.0.1:50895] PHP 6. call_user_func_array() D:\\user\\htdocs\\inet-almacen\\app\\bootstrap.php.cache:1001
[Mon May 04 17:20:10.712453 2015] [:error] [pid 4332:tid 1824] [client 127.0.0.1:50895] PHP 7. Almacen\\AlmacenBundle\\Controller\\AdminControlle r->comprasAddAction() D:\\user\\htdocs\\inet-almacen\\app\\bootstrap.php.cache:1001
[Mon May 04 17:20:10.712453 2015] [:error] [pid 4332:tid 1824] [client 127.0.0.1:50895] PHP 8. Symfony\\Component\\Form\\Form->createView() D:\\user\\htdocs\\inet-almacen\\src\\Almacen\\AlmacenBundle\\Controller\\ AdminController.php:658
[Mon May 04 17:20:10.712453 2015] [:error] [pid 4332:tid 1824] [client 127.0.0.1:50895] PHP 9. Symfony\\Component\\Form\\ResolvedFormType->createView() D:\\user\\htdocs\\inet-almacen\\vendor\\symfony\\symfony\\src\\Symfony\\C omponent\\Form\\Form.php:1047
[Mon May 04 17:20:10.712453 2015] [:error] [pid 4332:tid 1824] [client 127.0.0.1:50895] PHP 10. Symfony\\Component\\Form\\Form->createView() D:\\user\\htdocs\\inet-almacen\\vendor\\symfony\\symfony\\src\\Symfony\\C omponent\\Form\\ResolvedFormType.php:144
[Mon May 04 17:20:10.712453 2015] [:error] [pid 4332:tid 1824] [client 127.0.0.1:50895] PHP 11. Symfony\\Component\\Form\\ResolvedFormType->createView() D:\\user\\htdocs\\inet-almacen\\vendor\\symfony\\symfony\\src\\Symfony\\C omponent\\Form\\Form.php:1047
[Mon May 04 17:20:10.712453 2015] [:error] [pid 4332:tid 1824] [client 127.0.0.1:50895] PHP 12. Symfony\\Component\\Form\\ResolvedFormType->buildView() D:\\user\\htdocs\\inet-almacen\\vendor\\symfony\\symfony\\src\\Symfony\\C omponent\\Form\\ResolvedFormType.php:140
[Mon May 04 17:20:10.712453 2015] [:error] [pid 4332:tid 1824] [client 127.0.0.1:50895] PHP 13. Symfony\\Component\\Form\\Extension\\Core\\Type\\C ollectionType->buildView() D:\\user\\htdocs\\inet-almacen\\vendor\\symfony\\symfony\\src\\Symfony\\C omponent\\Form\\ResolvedFormType.php:193
[Mon May 04 17:20:10.712453 2015] [:error] [pid 4332:tid 1824] [client 127.0.0.1:50895] PHP 14. Symfony\\Component\\Form\\Form->createView() D:\\user\\htdocs\\inet-almacen\\vendor\\symfony\\symfony\\src\\Symfony\\C omponent\\Form\\Extension\\Core\\Type\\CollectionT ype.php:57
[Mon May 04 17:20:10.712453 2015] [:error] [pid 4332:tid 1824] [client 127.0.0.1:50895] PHP 15. Symfony\\Component\\Form\\ResolvedFormType->createView() D:\\user\\htdocs\\inet-almacen\\vendor\\symfony\\symfony\\src\\Symfony\\C omponent\\Form\\Form.php:1047
[Mon May 04 17:20:10.712453 2015] [:error] [pid 4332:tid 1824] [client 127.0.0.1:50895] PHP 16. Symfony\\Component\\Form\\Form->createView() D:\\user\\htdocs\\inet-almacen\\vendor\\symfony\\symfony\\src\\Symfony\\C omponent\\Form\\ResolvedFormType.php:144
[Mon May 04 17:20:10.712453 2015] [:error] [pid 4332:tid 1824] [client 127.0.0.1:50895] PHP 17. Symfony\\Component\\Form\\ResolvedFormType->createView() D:\\user\\htdocs\\inet-almacen\\vendor\\symfony\\symfony\\src\\Symfony\\C omponent\\Form\\Form.php:1047
[Mon May 04 17:20:10.712453 2015] [:error] [pid 4332:tid 1824] [client 127.0.0.1:50895] PHP 18. Symfony\\Component\\Form\\ResolvedFormType->buildView() D:\\user\\htdocs\\inet-almacen\\vendor\\symfony\\symfony\\src\\Symfony\\C omponent\\Form\\ResolvedFormType.php:140
[Mon May 04 17:20:10.712453 2015] [:error] [pid 4332:tid 1824] [client 127.0.0.1:50895] PHP 19. Symfony\\Component\\Form\\ResolvedFormType->buildView() D:\\user\\htdocs\\inet-almacen\\vendor\\symfony\\symfony\\src\\Symfony\\C omponent\\Form\\ResolvedFormType.php:190
[Mon May 04 17:20:10.712453 2015] [:error] [pid 4332:tid 1824] [client 127.0.0.1:50895] PHP 20. Symfony\\Component\\Form\\Extension\\Core\\Type\\C hoiceType->buildView() D:\\user\\htdocs\\inet-almacen\\vendor\\symfony\\symfony\\src\\Symfony\\C omponent\\Form\\ResolvedFormType.php:193
.........
..........
..........
[Mon May 04 17:20:10.713454 2015] [:error] [pid 4332:tid 1824] [client 127.0.0.1:50895] PHP 22. Symfony\\Bridge\\Doctrine\\Form\\ChoiceList\\Entit yChoiceList->load() D:\\user\\htdocs\\inet-almacen\\vendor\\symfony\\symfony\\src\\Symfony\\B ridge\\Doctrine\\Form\\ChoiceList\\EntityChoiceLis t.php:173
[Mon May 04 17:20:10.713454 2015] [:error] [pid 4332:tid 1824] [client 127.0.0.1:50895] PHP 23. Doctrine\\ORM\\EntityRepository->findAll() D:\\user\\htdocs\\inet-almacen\\vendor\\symfony\\symfony\\src\\Symfony\\B ridge\\Doctrine\\Form\\ChoiceList\\EntityChoiceLis t.php:385
[Mon May 04 17:20:10.713454 2015] [:error] [pid 4332:tid 1824] [client 127.0.0.1:50895] PHP 24. Doctrine\\ORM\\EntityRepository->findBy() D:\\user\\htdocs\\inet-almacen\\vendor\\doctrine\\orm\\lib\\Doctrine\\ORM \\EntityRepository.php:141
[Mon May 04 17:20:10.713454 2015] [:error] [pid 4332:tid 1824] [client 127.0.0.1:50895] PHP 25. Doctrine\\ORM\\Persisters\\BasicEntityPersister->loadAll() D:\\user\\htdocs\\inet-almacen\\vendor\\doctrine\\orm\\lib\\Doctrine\\ORM \\EntityRepository.php:157
[Mon May 04 17:20:10.713454 2015] [:error] [pid 4332:tid 1824] [client 127.0.0.1:50895] PHP 26. Doctrine\\ORM\\Internal\\Hydration\\AbstractHydrat or->hydrateAll() D:\\user\\htdocs\\inet-almacen\\vendor\\doctrine\\orm\\lib\\Doctrine\\ORM \\Persisters\\BasicEntityPersister.php:848
[Mon May 04 17:20:10.713454 2015] [:error] [pid 4332:tid 1824] [client 127.0.0.1:50895] PHP 27. Doctrine\\ORM\\Internal\\Hydration\\SimpleObjectHy drator->hydrateAllData() D:\\user\\htdocs\\inet-almacen\\vendor\\doctrine\\orm\\lib\\Doctrine\\ORM \\Internal\\Hydration\\AbstractHydrator.php:111
[Mon May 04 17:20:10.713454 2015] [:error] [pid 4332:tid 1824] [client 127.0.0.1:50895] PHP 28. Doctrine\\ORM\\Internal\\Hydration\\SimpleObjectHy drator->hydrateRowData() D:\\user\\htdocs\\inet-almacen\\vendor\\doctrine\\orm\\lib\\Doctrine\\ORM \\Internal\\Hydration\\SimpleObjectHydrator.php:50
[Mon May 04 17:20:10.713454 2015] [:error] [pid 4332:tid 1824] [client 127.0.0.1:50895] PHP 29. Doctrine\\ORM\\UnitOfWork->createEntity() D:\\user\\htdocs\\inet-almacen\\vendor\\doctrine\\orm\\lib\\Doctrine\\ORM \\Internal\\Hydration\\SimpleObjectHydrator.php:13 5
[Mon May 04 17:20:10.713454 2015] [:error] [pid 4332:tid 1824] [client 127.0.0.1:50895] PHP 30. Doctrine\\ORM\\Proxy\\ProxyFactory->getProxy() D:\\user\\htdocs\\inet-almacen\\vendor\\doctrine\\orm\\lib\\Doctrine\\ORM \\UnitOfWork.php:2590
  #8 (permalink)  
Antiguo 04/05/2015, 09:36
Avatar de hhs
hhs
Colaborador
 
Fecha de Ingreso: junio-2013
Ubicación: México
Mensajes: 2.995
Antigüedad: 10 años, 9 meses
Puntos: 379
Respuesta: Problemas formularios y collections entorno producción

Revia tus entidades:
Cita:
__CG__AlmacenAlmacenBundleEntityfamily.ph p
La extensión no esta bien, supongo que el archivo de la entidad es Family.php. Revisa la relación.
__________________
Saludos
About me
Laraveles
A class should have only one reason to change.
  #9 (permalink)  
Antiguo 04/05/2015, 09:50
 
Fecha de Ingreso: marzo-2005
Mensajes: 51
Antigüedad: 19 años, 1 mes
Puntos: 0
Respuesta: Problemas formularios y collections entorno producción

la extesión está correcta. family.php (no family.ph p)

No sé por qué sale ese espacio
  #10 (permalink)  
Antiguo 04/05/2015, 09:55
Avatar de hhs
hhs
Colaborador
 
Fecha de Ingreso: junio-2013
Ubicación: México
Mensajes: 2.995
Antigüedad: 10 años, 9 meses
Puntos: 379
Respuesta: Problemas formularios y collections entorno producción

Si tu proyecto esta en windows eso te puede dar problemas en lo nombre de las entidades, por ejemplo el archivo family.php debe de ser Family,php en linux hace diferencia este echo.
__________________
Saludos
About me
Laraveles
A class should have only one reason to change.
  #11 (permalink)  
Antiguo 04/05/2015, 10:16
 
Fecha de Ingreso: marzo-2005
Mensajes: 51
Antigüedad: 19 años, 1 mes
Puntos: 0
Respuesta: Problemas formularios y collections entorno producción

voy a probar.... alarms.php también daría problema?
  #12 (permalink)  
Antiguo 04/05/2015, 10:23
Avatar de hhs
hhs
Colaborador
 
Fecha de Ingreso: junio-2013
Ubicación: México
Mensajes: 2.995
Antigüedad: 10 años, 9 meses
Puntos: 379
Respuesta: Problemas formularios y collections entorno producción

Si es posible, de echo si vas a estar desarrollando en windows lo mejor que puedes hacer es utilizar virtualizacion para tus ambientes de desarrollo.
__________________
Saludos
About me
Laraveles
A class should have only one reason to change.
  #13 (permalink)  
Antiguo 04/05/2015, 10:34
 
Fecha de Ingreso: marzo-2005
Mensajes: 51
Antigüedad: 19 años, 1 mes
Puntos: 0
Respuesta: Problemas formularios y collections entorno producción

pero por qué puede ser que cuando lo ejecuto en DEV (app_dev.php) funciona todo correctamente y cuando lo ejecuto en PROD (app.php) no funciona???

Es que no le encuentro la lógica por ningún lado. Si por lo menos el debugador me mostrase errores...
  #14 (permalink)  
Antiguo 04/05/2015, 10:40
Avatar de hhs
hhs
Colaborador
 
Fecha de Ingreso: junio-2013
Ubicación: México
Mensajes: 2.995
Antigüedad: 10 años, 9 meses
Puntos: 379
Respuesta: Problemas formularios y collections entorno producción

Por que app_dev genera su propio cache, que nada tiene que ver con el que se genera cuando ejecutas en modo de producción, puedes borrar manualmente el cache pero dudo que eso arregle el problema.
Necesitas revisar la parte que esta relacionada con las entidades y los formularios y utiliza xdebug para ver el comportamiento linea a linea a veces con el profile de symfony no es suficiente.
__________________
Saludos
About me
Laraveles
A class should have only one reason to change.
  #15 (permalink)  
Antiguo 04/05/2015, 10:54
 
Fecha de Ingreso: marzo-2005
Mensajes: 51
Antigüedad: 19 años, 1 mes
Puntos: 0
Respuesta: Problemas formularios y collections entorno producción

Gracias, lo probaré y te cuento.

Por cierto, "reference" también es palabra prohibida? veo que solo me da problemas con esa entidad...
  #16 (permalink)  
Antiguo 04/05/2015, 11:05
Avatar de hhs
hhs
Colaborador
 
Fecha de Ingreso: junio-2013
Ubicación: México
Mensajes: 2.995
Antigüedad: 10 años, 9 meses
Puntos: 379
Respuesta: Problemas formularios y collections entorno producción

Si, es posible que existan palabras reservadas. Por eso es importante que utilices palabras relacionadas a tu dominio.
Yo tuve problemas en un proyecto por una entidad que quería nombre como Option y Symfony me informaba que es una palabra reservada.
__________________
Saludos
About me
Laraveles
A class should have only one reason to change.
  #17 (permalink)  
Antiguo 05/05/2015, 01:17
 
Fecha de Ingreso: marzo-2005
Mensajes: 51
Antigüedad: 19 años, 1 mes
Puntos: 0
Respuesta: Problemas formularios y collections entorno producción

Bueno, symfony no me avisa de que sea una palabra prohibida. Voy a mirar de generar una nueva entidad y cambiarle el nombre, a ver si así hay suerte...

Oye muchas gracias por la ayuda que me estás dando! te aseguro que estoy hasta durmiendo mal por las noches por el maldito error jejeejje.

Un abrazo! :)
  #18 (permalink)  
Antiguo 05/05/2015, 02:18
 
Fecha de Ingreso: marzo-2005
Mensajes: 51
Antigüedad: 19 años, 1 mes
Puntos: 0
Respuesta: Problemas formularios y collections entorno producción

Otro problema que tengo es que a veces cuando registro o muestro algún formulario me "desloguea" del sistema y me deja en anónimo. ?¿
  #19 (permalink)  
Antiguo 05/05/2015, 02:47
 
Fecha de Ingreso: marzo-2005
Mensajes: 51
Antigüedad: 19 años, 1 mes
Puntos: 0
Respuesta: Problemas formularios y collections entorno producción

Acabo de solucionar TODOS los problemas que tenía poniendo esto en el app.php:

$kernel = new AppKernel('prod', true);

Mira, no sé si será correcto o no, pero ya funciona todo jjeejej.
  #20 (permalink)  
Antiguo 05/05/2015, 07:24
Avatar de hhs
hhs
Colaborador
 
Fecha de Ingreso: junio-2013
Ubicación: México
Mensajes: 2.995
Antigüedad: 10 años, 9 meses
Puntos: 379
Respuesta: Problemas formularios y collections entorno producción

De echo, eso siempre se hace cuando pasas a producción.
Procura leer el manual http://symfony.com/doc/current/cookb...ent/index.html
__________________
Saludos
About me
Laraveles
A class should have only one reason to change.

Etiquetas: formularios, producción
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 02:49.