Este foro ya no está activo, así que no puedes publicar nuevas preguntas ni responder a las preguntas existentes.

Asignar variable en la carpeta de las plantillas Twig

23 de mayo de 2016

¿cómo puedo asignar variables a la carpeta del template?


Respuestas

#1

Me temo que no entiendo bien tu pregunta. ¿Quieres pasar variables a una plantilla Twig? ¿Quieres guardar en una variable la ruta de la carpeta donde se guardan las plantillas? ¿Quieres hacer configurable la carpeta en la que se guardan las plantillas?

@javiereguiluz

23 mayo 2016, 20:52
#2

declarar una variable y que este disponible en todas las plantillas

@cvfm27

23 mayo 2016, 21:26
#3

Lo que quieres hacer se llaman "variables globales". Si usas Twig como una librería independiente, define esas variables con el método addGlobal():

$twig = new Twig_Environment($loader);
// ...
$twig->addGlobal('nombre_variable', 'valor_variable');

Las variables pueden ser simples (cadenas, números, arrays) y también objetos con los que puedes invocar métodos en tus plantillas.

Si usas Twig dentro de un framework como Symfony, entonces solo tienes que declarar estas variables en la opción de configuración twig.globals:

# app/config/config.yml
twig:
    # ...
    globals:
        nombre_variable: valor_variable

@javiereguiluz

24 mayo 2016, 8:40
#4

Gracias Javier.

@cvfm27

24 mayo 2016, 16:42
#5

Tengo una duda. ¿se puede asignar una variable sin array?

$template = $twig->loadTemplate('layout_index.html');
echo $template->render(array('t' => 'variable'));

@cvfm27

24 mayo 2016, 21:20
#6

La variable no tiene por qué ser un array, pero lo que pases al método render() sí que tiene que ser un array. La razón es que las variables necesitan tener un nombre y un valor, por eso se usan arrays asociativos.

@javiereguiluz

24 mayo 2016, 21:48