Saltar al contenido

Llamar a Twig truncate filter dentro de un controlador

Solución:

Probablemente haya una forma más corta, pero la siguiente funcionó para mí:

$filters = $this->get('twig.extension.text')->getFilters();
$callable = $filters['truncate']->getCallable();

$truncated = $callable($this->get('twig'), $str));

Para Twig Extensions> 1.3 puedes usar este

$filters = $this->get('twig.extension.text')->getFilters();
$key = array_search('truncate', array_map(function(TwigFilter $filter) { return $filter->getName(); }, $filters), true);
$callable = $filters[$key]->getCallable();
    
$truncated = $callable($this->get('twig'), $str));

Si observa detenidamente el archivo Twig / Extensions / Extension / Text, verá que twig_truncate_filter en realidad se declara como una función global, no como parte de la Twig_Extensions_Extension_Text clase.

Esa clase simplemente actúa como envoltorio para un filtro Twig, truncar, llamar a eso global twig_truncate_filter función.

Simplemente puede llamarlo directamente en su controlador:

$truncatedValue = twig_truncate_filter($twig, $something);
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *