Mientras estaba desarrollando un proyecto en Symfony2, tuve la necesidad de agrupar dos Entidades que tenian informacion similar, por ejemplo tenia una Entidad Liquidacion y otra LiquidacionesSA, esta ultima simulaba una Liquidacion pero contenia otra informacion, ambas tenian un mes, un año, un codigo y estaban asociadas a una Entidad padre llamada LiquidacionResumen, el problema fue cuando necesite listar todas las Liquidaciones que tenia LiquidacionResumen en donde debia incluir tanto las Entidades Liquidacion y LiquidacionSA, obviamente debian ir ordenadas por codigo para mostrar una concordancia correlativa entre ellas, por ultimo mencionar que la asociacion entre ellas devolvia un ArrayCollection.
Author Archives: ariel_navarrete
Ocultar carpeta «web» de la URL en Symfony2
En un post anterior, vimos como quitar el «app.php/app_dev.php» de la URL, pero, que sucede si queremos que nuestras URL se vean aun mas limpias, por ejemplo, si tenemos una URL www.hola.com/web/home/ idealmente lo mejor seria que mostrase solo www.hola.com/home/ cierto? ¡pues claro! a nuestros Usuarios no les parecera muy lindo que se vea «web» en nuestra URL.
Castear un String a Entero con Doctrine
El problema es el siguiente, teniendo un campo String en donde se guarda un campo numerico se requeria ordenar por este, al ser String se ordenaba de una manera «incorrecta», en cierto modo es correcto pero dado el contenido no era lo esperado por el Usuario. Lo mas logico seria dejar este campo como Entero y listo, pero el problema es que la Base de Datos contiene mucha informacion y la persona que la hizo en su momento lo definio asi, por lo tanto, no nos dejaron cambiarla, asi que asumimos que seria asi.
Y bueno, buscando informacion sobre como castear un string a entero con Doctrine 2 en Symfony 2, no encontre ninguna forma directa ya que por lo visto no existe, la unica forma que logre encontrar es creando una funcion personalizada.
knp_paginator con consulta SQL personalizada (createNativeQuery)
El Bundle KnpPaginator es una excelente ayuda que nos permite paginar de una forma bastante amigable y facil, normalmente su uso se refiera a pasarle una query que formamos mediante createQuery y este la procesa y nos entrega el resultado paginado segun los parametros que definamos pero… ¿Que sucede cuando deseamos pasarle una consulta personalizada? la respuesta es tajante, no lo soporta, pero nos entrega herramientas para hacerlo.
Migrar Base de Datos de Symfony1 a Symfony2
Estuve trabajando en un proyecto que estaba hecho en Symfony 1.4, y se nos dio la oportunidad de migrar todo a Symfony 2.3, principalmente para actualizar y hacer los cambios mas rapidos, ya que los comandos que utiliza Propel (ORM) no eran ya muy compatibles y los resultados al ejecutarlos la verdad es que dejaban harto que desear, nos daba mas problemas que finalmente ayudarnos.
Quitar controlador frontal de la URL
En su momento vimos como redireccionar a la carpeta web cuando alguien accedia a nuestro proyecto sin escribir /web, pero que sucede si queremos tener nuestras URL mas limpias sin incluir el controlador frontal
SELECT CON VARIOS IDs PASADOS POR PARAMETRO CON PROPEL
Tengo un poco botado esto, pero he estado medio ocupado, actualmente estoy modificando un sistema hecho en Symfony1 y que tiene por ORM Propel, y bueno, llegado a un punto requeria tomar un listado de IDs que venian por parametro y realizar una consulta con ellas, por defecto Propel incluye una funcion que realiza esto de una manera muy simple y facil
CREAR FORMULARIO DE CONTACTO SIN PROGRAMAR
El formulario de contacto en un sitio web es muy importante, aunque mas importante es responderle a las personas que te contactan, pero bueno, eso es otro tema. Volviendo al punto original, que sucede cuando tienes una web y quieres externalizar este «servicio»? esto podria ser por distintos motivos, uno podria ser porque no quieres que la carga de email que envia pase por tu Hosting, lo otro puede ser que alguien indexo tu web y te esta mandando Spam (si es que no le tienes un captcha a tu formulario), o lo otro es simplemente porque no quieres desarrollarlo tu.
Limpiar un texto con funciones PHP
Me sucedio hace algun tiempo donde tenia una web en php sin ningun framework, y esta requeria recibir valores de distintos tipos, es decir, numeros, letras, una mezcla de los dos, etc.
Una de las soluciones mas simples seria poner una validacion por todos lados en donde lo requerimos, esto, obviamente es muy poco mantenible, ya que si por algun motivo detectamos algun error, tendriamos que buscar por todo el codigo en donde pusimos nuestras validaciones, asi que lo mas facil es centralizar una funcion unica en donde pasamos el valor y la opcion que requerimos.
Redireccionar a la carpeta WEB
Cuando ya tenemos nuestros proyecto en Symfony2 listo, nos queda solo un detalle…
¿Qué pasa si algun Usuario quita el /web de la URL?