Mostrar campo null en twig

174 views
Skip to first unread message

Yamith

unread,
Oct 13, 2015, 3:32:19 PM10/13/15
to symfony-es
Hola a  todos tengo un inconveniente con una tabla de registros.

quiero mostrar un campo de fecha. que al estar vacio me muestre cualquier cosa ejemplo (---) pero si esta lleno me muestre la fecha que tiene almacenada.
en twig lo tengo de esta manera nose si esta bien planteada o de que forma me recomiendan hacerlo

                    {% if solicitud.planilla.descargap2.fechahoradescarga is not null %}
                        <td>---</td>
                    {% else %}
                        <td>{{ solicitud.planilla.descargap2.fechahoradescarga|date(formatoFecha) }}</td>
                     {% endif %}

el error que me muestra es el siguiente.

Impossible to access an attribute ("fechahoradescarga") on a NULL variable ("") in admin/Solicitud/registros.html.twig at line 95   



AGRADEZCO SU COLABORACIÓN GRACIAS..          

Eloy González Andueza

unread,
Oct 13, 2015, 3:40:34 PM10/13/15
to symfo...@googlegroups.com
Hola,
¿Has probado?
{{solicitud.planilla.descargap2.fechahoradescarga | default('--')}}

Un saludo

Declinación de Responsabilidades: Los servicios de MISENA son soportados tecnológicamente por © Google y ofrecidos por el Servicio Nacional de Aprendizaje – SENA de manera gratuita a los aprendices e instructores de programas de formación titulada, las opiniones que contenga este mensaje son exclusivas de su autor y no representan la opinión del Servicio Nacional de Aprendizaje o de sus autoridades. El receptor deberá verificar posibles virus informáticos que tenga el correo o cualquier anexo, razón por la cual el SENA no es responsable de los daños causados por cualquier virus transmitido en este correo electrónico.

Los contenidos, textos, imágenes, archivos enviados en este mensaje son responsabilidad exclusiva del remitente y no reflejan ni comprometen de ninguna manera a la institución. No se autoriza el uso de esta herramienta para el intercambio de correos masivos, cadenas o spam, ni de mensajes ofensivos, de carácter político, sexual o religioso, con fines de lucro, con propósitos delictivos o cualquier otro mensaje que se considere indebido o que vaya en contra de la Ley.

--
--
Has recibido este mensaje porque estás suscrito al grupo "symfony-es" de Google Groups.
Para publicar en este grupo, envía un email a symfo...@googlegroups.com
Para darte de baja, envía un email a symfony-es+...@googlegroups.com
El resto de opciones puedes encontrarlas en http://groups.google.com/group/symfony-es?hl=es

---
Has recibido este mensaje porque estás suscrito al grupo "symfony-es" de Grupos de Google.
Para anular la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a symfony-es+...@googlegroups.com.
Para acceder a más opciones, visita https://groups.google.com/d/optout.

Henry Vallenilla

unread,
Oct 13, 2015, 3:47:13 PM10/13/15
to symfo...@googlegroups.com
Hola,

Prueba esto 


{{ solicitud.planilla.descargap2.fechahoradescarga is empty ? "" : solicitud.planilla.descargap2.fechahoradescarga|date("m/d/Y") }}

Saludos

Henry Vallenilla
Symfony Developer
Skype: hvallenilla
Twitter: @hvallenilla
Mobile: 
+54 9 351 767 74 81
Email/Gtalk: henryva...@gmail.com

Ver mi perfil


------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Lo que la mente humana pueda creer y concebir, puede conseguir.

El principal atributo para ser exitoso es aprender de los que saben, absorber conocimiento.

Yamith

unread,
Oct 13, 2015, 4:20:23 PM10/13/15
to symfony-es
hola  Eloy gracias por responder.
probé lo que me sugeriste pero me muestra en todos los registros lo que esta dentro del la etiqueta  <td>---</td>. y ya no me da error. pero en mi base de datos hay registros con la fechahoradescarga deberia de mostrar la fecha pero me muestra los guiones que se encuentra del <td>---</td>


                    {% if solicitud.planilla.descargap2.fechahoradescarga | default('---') %}
                        <td>---</td>
                    {% else %}
                        <td>{{ solicitud.planilla.descargap2.fechahoradescarga|date(formatoFecha) }}</td>
                        {% endif %} 
 
----------------------------------------------------------------------------------------------------------------------------------------------------------------------

hola hv@llenill@ tambien hice lo que me sugeriste y no me funciona.
me da este error 

Henry Vallenilla

unread,
Oct 13, 2015, 4:31:26 PM10/13/15
to symfo...@googlegroups.com
Cómo tienes definido el atributo fechahoradescarga en la entidad ?

Henry Vallenilla
Symfony Developer
Skype: hvallenilla
Twitter: @hvallenilla
Mobile: 
+54 9 351 767 74 81
Email/Gtalk: henryva...@gmail.com

Ver mi perfil


------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Lo que la mente humana pueda creer y concebir, puede conseguir.

El principal atributo para ser exitoso es aprender de los que saben, absorber conocimiento.

Yamith

unread,
Oct 13, 2015, 4:40:32 PM10/13/15
to symfony-es
entidad
 
 /**
     * @var \DateTime
     *
     * @ORM\Column(name="fechahoradescarga", type="datetime", nullable=false)
     */
    private $fechahoradescarga;

Sebastian Thomson

unread,
Oct 13, 2015, 4:43:57 PM10/13/15
to symfony-es
Yamith, 

El problema "Impossible to access an attribute ("fechahoradescarga") on a NULL variable ("") in admin/Solicitud/registros.html.twig at line 95" no tiene que ver con
el problema de que la variable fechahoradescarga contenga un null. 

El problema es que estás tratando de acceder a esta, desde una variable null (""). Por lo que el problema es descargap2.

Atento a tus comentarios.

Manuel Aguirre

unread,
Oct 13, 2015, 8:32:48 PM10/13/15
to symfo...@googlegroups.com
Buenas, el filtro default permite escribir una linea simple sin tener que colocar la condicion, por lo que el td queda tan simple como:

<td>{{ solicitud.planilla.descargap2.fechahoradescarga | default('--') }}</td>

No hace falta ningún if, ya que el filtro default, verifica la existencia de cada variable y que no esté vacia, de lo contrario muestra el contenido pasado al filtro.

Saludos!

--
--
Has recibido este mensaje porque estás suscrito al grupo "symfony-es" de Google Groups.
Para publicar en este grupo, envía un email a symfo...@googlegroups.com
Para darte de baja, envía un email a symfony-es+...@googlegroups.com
El resto de opciones puedes encontrarlas en http://groups.google.com/group/symfony-es?hl=es

---
Has recibido este mensaje porque estás suscrito al grupo "symfony-es" de Grupos de Google.
Para anular la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a symfony-es+...@googlegroups.com.
Para acceder a más opciones, visita https://groups.google.com/d/optout.



--

Manuel Aguirre.


manuel_j555 | Desarrollador de Software | Optime Consulting | twitter | github | Sitio web


A menudo unas pocas horas de "Prueba y error" podrán ahorrarte minutos de leer manuales.

Yamith

unread,
Oct 14, 2015, 10:26:09 AM10/14/15
to symfony-es
lo he planteado de esta forma como me lo han recomendado

<td>{{ solicitud.planilla.descargap2.fechahoradescarga | default('--') }}</td>

pero me da el siguiente error 

ContextErrorException: Catchable Fatal Error: Object of class DateTime could not be converted to string in /var/www/PhpProject1/bitacora/app/cache/dev/twig/33/8b/37b8d63cee7032c7983c296dda09ef402532e4235e534551494590297b2f.php line 288

 
PERO ES PORQUE NO LE HE DEFINIDO EL FORMATO DE FECHA MI PREGUNTA ES COMO AGREGO EL FORMATO DE LA FECHA A LA ETIQUETA.
<td>{{ solicitud.planilla.descargap2.fechahoradescarga | default('--') }}</td>
<td>{{ solicitud.planilla.descargap2.fechahoradescarga | default('--')|date(formatoFecha) }}</td> HAGO ASI O COMO SE DEFINIRIA..

Marcelo Prizmic

unread,
Oct 14, 2015, 10:40:44 AM10/14/15
to symfo...@googlegroups.com
Tiene razón Sebastián

probá

{% if solicitud.planilla.descargap2 is null %}
......
{% else %}

lo que querías hacer
....
{% endif %}


Declinación de Responsabilidades: Los servicios de MISENA son soportados tecnológicamente por © Google y ofrecidos por el Servicio Nacional de Aprendizaje – SENA de manera gratuita a los aprendices e instructores de programas de formación titulada, las opiniones que contenga este mensaje son exclusivas de su autor y no representan la opinión del Servicio Nacional de Aprendizaje o de sus autoridades. El receptor deberá verificar posibles virus informáticos que tenga el correo o cualquier anexo, razón por la cual el SENA no es responsable de los daños causados por cualquier virus transmitido en este correo electrónico.

Los contenidos, textos, imágenes, archivos enviados en este mensaje son responsabilidad exclusiva del remitente y no reflejan ni comprometen de ninguna manera a la institución. No se autoriza el uso de esta herramienta para el intercambio de correos masivos, cadenas o spam, ni de mensajes ofensivos, de carácter político, sexual o religioso, con fines de lucro, con propósitos delictivos o cualquier otro mensaje que se considere indebido o que vaya en contra de la Ley.

--

Manuel Aguirre

unread,
Oct 14, 2015, 1:33:57 PM10/14/15
to symfo...@googlegroups.com
EL problema con if solicitud.planilla.descargap2 is null es que si la variable solicitud o la propiedad planilla no existen o son null, twig lanza una exception diciendote que no se puede acceder a al propiedad descargap2 desde algo que no es un objeto.

La solución a esto consiste en usar el test is defined de twig asi:

{% if solicitud.planilla.descargap2.fechahoradescarga is defined and solicitud.planilla.descargap2.fechahoradescarga is not null %}
......
{% else %}

lo que querías hacer
....
{% endif %}

Saludos!

Absalón Valdés Ormeño

unread,
Oct 14, 2015, 1:38:59 PM10/14/15
to symfo...@googlegroups.com

Yamith

unread,
Oct 14, 2015, 2:30:52 PM10/14/15
to symfony-es
Gracias a todos por sus sugerencias lo resolví de este modo

  {% if solicitud.planilla.descargap2 is null %}

Sebastian Thomson

unread,
Oct 14, 2015, 2:52:59 PM10/14/15
to symfo...@googlegroups.com
De nada, 

Recuerda siempre leer bien los errores que arroja Symfony. Son la mejor ayuda.

Declinación de Responsabilidades: Los servicios de MISENA son soportados tecnológicamente por © Google y ofrecidos por el Servicio Nacional de Aprendizaje – SENA de manera gratuita a los aprendices e instructores de programas de formación titulada, las opiniones que contenga este mensaje son exclusivas de su autor y no representan la opinión del Servicio Nacional de Aprendizaje o de sus autoridades. El receptor deberá verificar posibles virus informáticos que tenga el correo o cualquier anexo, razón por la cual el SENA no es responsable de los daños causados por cualquier virus transmitido en este correo electrónico.

Los contenidos, textos, imágenes, archivos enviados en este mensaje son responsabilidad exclusiva del remitente y no reflejan ni comprometen de ninguna manera a la institución. No se autoriza el uso de esta herramienta para el intercambio de correos masivos, cadenas o spam, ni de mensajes ofensivos, de carácter político, sexual o religioso, con fines de lucro, con propósitos delictivos o cualquier otro mensaje que se considere indebido o que vaya en contra de la Ley.

--
--
Has recibido este mensaje porque estás suscrito al grupo "symfony-es" de Google Groups.
Para publicar en este grupo, envía un email a symfo...@googlegroups.com
Para darte de baja, envía un email a symfony-es+...@googlegroups.com
El resto de opciones puedes encontrarlas en http://groups.google.com/group/symfony-es?hl=es

---
Has recibido este mensaje porque estás suscrito al grupo "symfony-es" de Grupos de Google.
Para anular la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a symfony-es+...@googlegroups.com.
Para acceder a más opciones, visita https://groups.google.com/d/optout.



--
Sebastián Andrés Thomson Henríquez
Ingeniero en Computación e Informática

Reply all
Reply to author
Forward
0 new messages