Expertos en Symfony y Drupal

Usar constante de una clase PHP en una plantilla Twig en Symfony2

En este minitutorial vamos a ver cómo usar una constante definida en una clase PHP de un desarrollo Symfony en una plantilla Twig.

Como ejemplo utilizaremos una entidad Symfony que almacena el estado de un pedido, con tres constantes que podríamos usar en una plantilla twig para mostrar distintas vistas personalizadas:


<?php

namespace Vabadus\AdminBundle\Entity;

/**
 * @ORM\Entity
 * @ORM\Table
 */
class PedidoEstado
{
    const PENDIENTE = 'Pendiente de pago';
    const PAGADO    = 'Pagado';
    const ENVIADO   = 'Enviado';

    // ...
}

Para recuperar en una plantilla twig las constantes de la clase PHP anterior, solo necesitaríamos utilizar la función constant(), tal y como se puede ver a continuación:


{% if pedido.estado == constant('Vabadus\\AdminBundle\\Entity\\PedidoEstado:: PENDIENTE') %}
    {# ... #}
{% elseif pedido.estado == constant('Vabadus\\AdminBundle\\Entity\\PedidoEstado::PAGADO') %}
    {# ... #}
{% elseif pedido.estado == constant('Vabadus\\AdminBundle\\Entity\\PedidoEstado::PAGADO') %}
    {# ... #}
{% endif %}

Ten en cuenta que los dos backslash (\\) en la referencia a la entidad Symfony de la llamada a la función constant() en la plantilla twig, no es un error.

[x] Este sitio utiliza cookies para mejorar tu experiencia de usuario. Al continuar navegando estás aceptando su uso. Política de cookies.