Hola
Mi situación: estoy utilizando el bundle LexikFormFilterBundle para filtrar datos.
Tengo una relación entre empleado
y cargo
, donde un cargo
tiene cero o muchos empleados asignados.
El campo del filtro:
->add('cargo', 'filter_entity', array( 'class' => 'PersonalBundle:Cargo', 'property' => 'nombre', 'query_builder' => function (\Doctrine\ORM\EntityRepository $repository) { return $repository ->createQueryBuilder('c') ->join('c.empleados', 'p') ->add('groupBy', 'c.nombre') ; } ))
Al filtrar por una entidad, me arroja varios errores, el principal es este:
Symfony\Component\HttpKernel\DataCollector\RequestDataCollector::serialize() must return a string or NULL
Realicé un seguimiento, para saber donde se produce el error:
1) Ingrese a la ruta. (OK) 2) La función de filtrado devolvió todos los registros (OK). 3) Me devuelve
list($filterForm, $queryBuilder) = $this->filter(); // formulario y la consulta. (OK)
4) Crea formulario: $filterForm->createView()
(OK)
5) Carga plantilla. (OK)
return $this->render('PersonalBundle:CCTV:index.html.twig', array( 'entities' => $entities, // datos a partir de $queryBuilder 'filterForm' => $filterForm->createView(), ));
6) Realizo el filtro por el cargo.
7) Los pasos 1 a 4 se procesan correctamente, pero al cargar la plantilla arroja el error mencionado.
Yo creo que el error está en el filterForm
que pasa a la plantilla:
<form action="{{ path('ruta') }}" method="post" {{ form_enctype(filterForm) }}>
¿Me podrían orientar?
PD: lo raro que tengo filtros igual y no se produce el error.
Respuestas
Al utilizar una versión de Symfony tan antigua, es posible que se trate de un error que ya se corrigió en las versiones más recientes que todavía se mantienen.
En cualquier caso, mi pregunta sería, ¿las propiedades de tus entidades de Doctrine son private
? En caso de que lo sean, ¿puedes probar a cambiarlas por protected
? Es posible que estés guardando en la sesión información y al ser las propiedades private
el serializador que utiliza la sesión no puede acceder a ellas.
Si no se arregla el problema, indícanos si puedes todos los errores que se producen, ya que podríamos estar buscando algo que no tiene nada que ver con el error real que se está produciendo.
@javiereguiluz
Hice el cambio, y me arroja el mismo error.
Como mencione solo sucede con la entidad personal y con la relación con la entidad cargo.
Por que, tengo otra relacion similar con otra entidad y funciona el filtro.
@dariongg